home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 January / macpower199701.bin / AMUG / Publishing_19 / Alpha 6.5.sit / Tcl / Modes / shellMode.tcl < prev    next >
MacBinary  |  1996-08-15  |  13.8 KB  |  [TEXT/ALFA]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: shellMode.tcl

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Thu Aug 15 15:21:48 1996, modified Thu Aug 15 15:21:48 1996, creator Alpha editor, type ASCII, 13492 bytes "shellMode.tcl" , at 0x3534 382 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[ALFA]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0d 73 68 65 6c 6c 4d | 6f 64 65 2e 74 63 6c 00 |..shellM|ode.tcl.|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 41 4c 46 | 41 01 00 00 00 00 00 00 |.TEXTALF|A.......|
|00000050| 00 00 00 00 00 34 b4 00 | 00 01 7e ae 39 29 4c ae |.....4..|..~.9)L.|
|00000060| 39 29 4c 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |9)L.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 a3 a1 00 00 |........|........|
|00000080| 0d 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#######|########|
|00000090| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000d0| 23 0d 23 20 53 68 65 6c | 6c 20 72 6f 75 74 69 6e |#.# Shel|l routin|
|000000e0| 65 73 2e 0d 23 23 23 23 | 23 23 23 23 23 23 23 23 |es..####|########|
|000000f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000100| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000110| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000120| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000130| 23 23 23 23 0d 0d 69 66 | 20 24 73 74 61 72 74 69 |####..if| $starti|
|00000140| 6e 67 55 70 20 7b 0d 09 | 61 64 64 4d 6f 64 65 20 |ngUp {..|addMode |
|00000150| 53 68 65 6c 20 64 75 6d | 6d 79 53 68 65 6c 20 7b |Shel dum|myShel {|
|00000160| 22 2a 74 63 6c 5c 20 73 | 68 2a 22 7d 20 7b 20 74 |"*tcl\ s|h*"} { t|
|00000170| 63 6c 4d 65 6e 75 20 7d | 0d 09 6e 65 77 4d 6f 64 |clMenu }|..newMod|
|00000180| 65 56 61 72 20 53 68 65 | 6c 20 77 6f 72 64 42 72 |eVar She|l wordBr|
|00000190| 65 61 6b 20 7b 28 5c 24 | 29 3f 5b 61 2d 7a 41 2d |eak {(\$|)?[a-zA-|
|000001a0| 5a 30 2d 39 5f 2e 5d 2b | 7d 20 30 0d 09 6e 65 77 |Z0-9_.]+|} 0..new|
|000001b0| 4d 6f 64 65 56 61 72 20 | 53 68 65 6c 20 77 6f 72 |ModeVar |Shel wor|
|000001c0| 64 57 72 61 70 20 7b 30 | 7d 20 31 0d 09 6e 65 77 |dWrap {0|} 1..new|
|000001d0| 4d 6f 64 65 56 61 72 20 | 53 68 65 6c 20 77 6f 72 |ModeVar |Shel wor|
|000001e0| 64 42 72 65 61 6b 50 72 | 65 66 61 63 65 20 7b 5b |dBreakPr|eface {[|
|000001f0| 5e 61 2d 7a 41 2d 5a 30 | 2d 39 5f 5c 24 5d 7d 20 |^a-zA-Z0|-9_\$]} |
|00000200| 30 0d 09 6e 65 77 4d 6f | 64 65 56 61 72 20 53 68 |0..newMo|deVar Sh|
|00000210| 65 6c 20 61 75 74 6f 4d | 61 72 6b 09 30 09 31 0d |el autoM|ark.0.1.|
|00000220| 09 72 65 67 4d 6f 64 65 | 4b 65 79 77 6f 72 64 73 |.regMode|Keywords|
|00000230| 20 2d 6d 20 7b c7 7d 20 | 53 68 65 6c 20 7b 7d 0d | -m {.} |Shel {}.|
|00000240| 09 72 65 74 75 72 6e 0d | 7d 0d 0d 0d 73 65 74 20 |.return.|}...set |
|00000250| 6f 74 68 65 72 44 69 72 | 73 20 7b 7d 0d 0d 70 72 |otherDir|s {}..pr|
|00000260| 6f 63 20 70 75 73 68 64 | 20 7b 61 72 67 73 7d 20 |oc pushd| {args} |
|00000270| 7b 0d 09 67 6c 6f 62 61 | 6c 20 6f 74 68 65 72 44 |{..globa|l otherD|
|00000280| 69 72 73 0d 09 69 66 20 | 7b 5b 73 74 72 69 6e 67 |irs..if |{[string|
|00000290| 20 6c 65 6e 67 74 68 20 | 24 61 72 67 73 5d 7d 20 | length |$args]} |
|000002a0| 7b 0d 09 09 73 65 74 20 | 6f 74 68 65 72 44 69 72 |{...set |otherDir|
|000002b0| 73 20 5b 63 6f 6e 73 20 | 5b 70 77 64 5d 20 24 6f |s [cons |[pwd] $o|
|000002c0| 74 68 65 72 44 69 72 73 | 5d 0d 09 09 63 64 20 5b |therDirs|]...cd [|
|000002d0| 73 74 72 69 6e 67 20 74 | 72 69 6d 20 5b 65 76 61 |string t|rim [eva|
|000002e0| 6c 20 6c 69 73 74 20 24 | 61 72 67 73 5d 20 22 09 |l list $|args] ".|
|000002f0| 09 5c 7b 5c 7d 22 5d 0d | 09 7d 20 65 6c 73 65 20 |.\{\}"].|.} else |
|00000300| 7b 0d 09 09 69 66 20 7b | 5b 6c 6c 65 6e 67 74 68 |{...if {|[llength|
|00000310| 20 24 6f 74 68 65 72 44 | 69 72 73 5d 7d 20 7b 0d | $otherD|irs]} {.|
|00000320| 09 09 09 73 65 74 20 6e | 20 5b 63 61 72 20 24 6f |...set n| [car $o|
|00000330| 74 68 65 72 44 69 72 73 | 5d 0d 09 09 09 73 65 74 |therDirs|]....set|
|00000340| 20 6f 74 68 65 72 44 69 | 72 73 20 5b 63 6f 6e 73 | otherDi|rs [cons|
|00000350| 20 5b 70 77 64 5d 20 5b | 63 64 72 20 24 6f 74 68 | [pwd] [|cdr $oth|
|00000360| 65 72 44 69 72 73 5d 5d | 0d 09 09 09 63 64 20 24 |erDirs]]|....cd $|
|00000370| 6e 0d 09 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 09 |n...} el|se {....|
|00000380| 72 65 74 75 72 6e 20 22 | 4e 6f 20 6f 74 68 65 72 |return "|No other|
|00000390| 20 64 69 72 65 63 74 6f | 72 69 65 73 22 0d 09 09 | directo|ries"...|
|000003a0| 7d 0d 09 7d 0d 7d 0d 70 | 72 6f 63 20 70 64 20 7b |}..}.}.p|roc pd {|
|000003b0| 61 72 67 73 7d 20 7b 0d | 09 69 66 20 7b 5b 73 74 |args} {.|.if {[st|
|000003c0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 61 72 67 |ring len|gth $arg|
|000003d0| 73 5d 7d 20 7b 0d 09 09 | 65 76 61 6c 20 70 75 73 |s]} {...|eval pus|
|000003e0| 68 64 20 24 61 72 67 73 | 0d 09 7d 20 65 6c 73 65 |hd $args|..} else|
|000003f0| 20 7b 0d 09 09 70 75 73 | 68 64 0d 09 7d 0d 7d 0d | {...pus|hd..}.}.|
|00000400| 0d 0d 70 72 6f 63 20 64 | 69 72 73 20 7b 7d 20 7b |..proc d|irs {} {|
|00000410| 67 6c 6f 62 61 6c 20 6f | 74 68 65 72 44 69 72 73 |global o|therDirs|
|00000420| 3b 20 63 6f 6e 73 20 5b | 70 77 64 5d 20 24 6f 74 |; cons [|pwd] $ot|
|00000430| 68 65 72 44 69 72 73 7d | 0d 0d 70 72 6f 63 20 70 |herDirs}|..proc p|
|00000440| 6f 70 64 20 7b 7d 20 7b | 0d 09 67 6c 6f 62 61 6c |opd {} {|..global|
|00000450| 20 6f 74 68 65 72 44 69 | 72 73 0d 09 69 66 20 7b | otherDi|rs..if {|
|00000460| 5b 6c 6c 65 6e 67 74 68 | 20 24 6f 74 68 65 72 44 |[llength| $otherD|
|00000470| 69 72 73 5d 7d 20 7b 0d | 09 09 63 64 20 5b 63 61 |irs]} {.|..cd [ca|
|00000480| 72 20 24 6f 74 68 65 72 | 44 69 72 73 5d 0d 09 09 |r $other|Dirs]...|
|00000490| 73 65 74 20 6f 74 68 65 | 72 44 69 72 73 20 5b 63 |set othe|rDirs [c|
|000004a0| 64 72 20 24 6f 74 68 65 | 72 44 69 72 73 5d 0d 09 |dr $othe|rDirs]..|
|000004b0| 7d 20 65 6c 73 65 20 7b | 0d 09 09 72 65 74 75 72 |} else {|...retur|
|000004c0| 6e 20 22 4e 6f 20 6f 74 | 68 65 72 20 64 69 72 65 |n "No ot|her dire|
|000004d0| 63 74 6f 72 69 65 73 22 | 0d 09 7d 0d 7d 0d 0d 0d |ctories"|..}.}...|
|000004e0| 70 72 6f 63 20 73 65 74 | 53 68 65 6c 6c 4d 6f 64 |proc set|ShellMod|
|000004f0| 65 20 7b 7d 20 7b 0d 09 | 73 65 74 54 63 6c 4d 6f |e {} {..|setTclMo|
|00000500| 64 65 0d 09 63 68 61 6e | 67 65 4d 6f 64 65 20 22 |de..chan|geMode "|
|00000510| 53 68 65 6c 22 0d 09 69 | 6e 73 65 72 74 4d 65 6e |Shel"..i|nsertMen|
|00000520| 75 20 22 54 63 6c 22 0d | 7d 0d 0d 70 72 6f 63 20 |u "Tcl".|}..proc |
|00000530| 69 6e 69 74 53 68 65 6c | 6c 20 7b 7d 20 7b 0d 09 |initShel|l {} {..|
|00000540| 69 6e 73 65 72 74 54 65 | 78 74 20 22 57 65 6c 63 |insertTe|xt "Welc|
|00000550| 6f 6d 65 20 74 6f 20 41 | 6c 70 68 61 27 73 20 54 |ome to A|lpha's T|
|00000560| 63 6c 20 73 68 65 6c 6c | 2e 22 0d 09 69 6e 73 65 |cl shell|."..inse|
|00000570| 72 74 54 65 78 74 20 2d | 77 20 5b 6c 69 6e 64 65 |rtText -|w [linde|
|00000580| 78 20 5b 77 69 6e 4e 61 | 6d 65 73 5d 20 30 5d 20 |x [winNa|mes] 0] |
|00000590| 5b 73 68 65 6c 6c 50 72 | 6f 6d 70 74 5d 0d 7d 0d |[shellPr|ompt].}.|
|000005a0| 0d 23 20 52 65 74 75 72 | 6e 20 74 68 65 20 70 72 |.# Retur|n the pr|
|000005b0| 6f 6d 70 74 2e 20 57 65 | 20 77 61 6e 74 20 74 68 |ompt. We| want th|
|000005c0| 65 20 77 69 6e 64 6f 77 | 20 6e 61 6d 65 20 62 65 |e window| name be|
|000005d0| 63 61 75 73 65 20 73 6f | 6d 65 20 6f 66 20 74 68 |cause so|me of th|
|000005e0| 65 20 63 6f 6d 6d 61 6e | 64 73 0d 23 20 77 65 20 |e comman|ds.# we |
|000005f0| 65 76 61 6c 75 61 74 65 | 20 28 73 75 63 68 20 61 |evaluate| (such a|
|00000600| 73 20 27 65 64 69 74 27 | 29 20 6f 70 65 6e 20 61 |s 'edit'|) open a|
|00000610| 20 6e 65 77 20 77 69 6e | 64 6f 77 2c 20 61 6e 64 | new win|dow, and|
|00000620| 20 77 65 20 77 61 6e 74 | 20 74 68 65 20 69 6e 73 | we want| the ins|
|00000630| 65 72 74 69 6f 6e 0d 23 | 20 74 6f 20 62 65 20 64 |ertion.#| to be d|
|00000640| 6f 6e 65 20 69 6e 20 74 | 68 65 20 73 68 65 6c 6c |one in t|he shell|
|00000650| 20 77 69 6e 64 6f 77 2e | 0d 70 72 6f 63 20 73 68 | window.|.proc sh|
|00000660| 65 6c 6c 50 72 6f 6d 70 | 74 20 7b 7d 20 7b 0d 09 |ellPromp|t {} {..|
|00000670| 72 65 74 75 72 6e 20 22 | 5c 72 c7 5b 66 69 6c 65 |return "|\r.[file|
|00000680| 20 74 61 69 6c 20 5b 73 | 74 72 69 6e 67 20 74 72 | tail [s|tring tr|
|00000690| 69 6d 72 69 67 68 74 20 | 5b 70 77 64 5d 20 7b 3a |imright |[pwd] {:|
|000006a0| 7d 5d 5d c8 20 22 0d 7d | 0d 0d 0d 70 72 6f 63 20 |}]]. ".}|...proc |
|000006b0| 73 68 65 6c 6c 43 61 72 | 72 69 61 67 65 52 65 74 |shellCar|riageRet|
|000006c0| 75 72 6e 20 7b 7d 20 7b | 0d 09 67 6c 6f 62 61 6c |urn {} {|..global|
|000006d0| 20 6d 6f 64 65 20 68 69 | 73 74 6e 75 6d 0d 09 67 | mode hi|stnum..g|
|000006e0| 6c 6f 62 61 6c 20 5f 74 | 65 78 74 0d 09 67 6c 6f |lobal _t|ext..glo|
|000006f0| 62 61 6c 20 5f 72 65 74 | 75 72 6e 54 65 78 74 0d |bal _ret|urnText.|
|00000700| 09 73 65 74 20 70 6f 73 | 20 5b 67 65 74 50 6f 73 |.set pos| [getPos|
|00000710| 5d 0d 0d 09 69 66 20 7b | 21 5b 63 61 74 63 68 20 |]...if {|![catch |
|00000720| 7b 72 65 67 65 78 70 20 | 7b b0 7d 20 5b 67 65 74 |{regexp |{.} [get|
|00000730| 54 65 78 74 20 24 70 6f | 73 20 5b 6e 65 78 74 4c |Text $po|s [nextL|
|00000740| 69 6e 65 53 74 61 72 74 | 20 24 70 6f 73 5d 5d 7d |ineStart| $pos]]}|
|00000750| 20 72 65 73 5d 20 26 26 | 20 24 72 65 73 7d 20 7b | res] &&| $res} {|
|00000760| 0d 09 09 67 6f 74 6f 4d | 61 74 63 68 3b 20 72 65 |...gotoM|atch; re|
|00000770| 74 75 72 6e 3b 0d 09 7d | 0d 09 73 65 74 20 69 6e |turn;..}|..set in|
|00000780| 64 20 5b 73 74 72 69 6e | 67 20 66 69 72 73 74 20 |d [strin|g first |
|00000790| 22 c8 22 20 5b 67 65 74 | 54 65 78 74 20 5b 6c 69 |"." [get|Text [li|
|000007a0| 6e 65 53 74 61 72 74 20 | 24 70 6f 73 5d 20 24 70 |neStart |$pos] $p|
|000007b0| 6f 73 5d 5d 0d 09 69 66 | 20 7b 24 69 6e 64 20 3c |os]]..if| {$ind <|
|000007c0| 20 30 7d 20 7b 0d 09 09 | 63 61 72 72 69 61 67 65 | 0} {...|carriage|
|000007d0| 52 65 74 75 72 6e 0d 09 | 09 72 65 74 75 72 6e 0d |Return..|.return.|
|000007e0| 09 7d 0d 09 73 65 74 20 | 6c 53 74 61 72 74 20 5b |.}..set |lStart [|
|000007f0| 65 78 70 72 20 5b 6c 69 | 6e 65 53 74 61 72 74 20 |expr [li|neStart |
|00000800| 24 70 6f 73 5d 2b 24 69 | 6e 64 2b 32 5d 0d 09 65 |$pos]+$i|nd+2]..e|
|00000810| 6e 64 4f 66 4c 69 6e 65 | 0d 09 73 65 74 20 5f 74 |ndOfLine|..set _t|
|00000820| 65 78 74 20 5b 67 65 74 | 54 65 78 74 20 24 6c 53 |ext [get|Text $lS|
|00000830| 74 61 72 74 20 5b 67 65 | 74 50 6f 73 5d 5d 0d 09 |tart [ge|tPos]]..|
|00000840| 73 65 74 20 66 69 6c 65 | 4e 61 6d 65 20 5b 6c 69 |set file|Name [li|
|00000850| 6e 64 65 78 20 5b 77 69 | 6e 4e 61 6d 65 73 5d 20 |ndex [wi|nNames] |
|00000860| 30 5d 0d 09 69 66 20 7b | 5b 67 65 74 50 6f 73 5d |0]..if {|[getPos]|
|00000870| 20 21 3d 20 5b 6d 61 78 | 50 6f 73 5d 7d 20 7b 0d | != [max|Pos]} {.|
|00000880| 09 09 67 6f 74 6f 20 5b | 6d 61 78 50 6f 73 5d 0d |..goto [|maxPos].|
|00000890| 09 09 69 6e 73 65 72 74 | 54 65 78 74 20 2d 77 20 |..insert|Text -w |
|000008a0| 24 66 69 6c 65 4e 61 6d | 65 20 24 5f 74 65 78 74 |$fileNam|e $_text|
|000008b0| 0d 09 7d 0d 09 69 66 20 | 7b 5b 73 74 72 69 6e 67 |..}..if |{[string|
|000008c0| 20 66 69 72 73 74 20 22 | 54 6f 6f 6c 73 65 72 76 | first "|Toolserv|
|000008d0| 65 72 22 20 24 66 69 6c | 65 4e 61 6d 65 5d 20 21 |er" $fil|eName] !|
|000008e0| 3d 20 2d 31 7d 20 7b 0d | 09 09 69 66 20 7b 21 5b |= -1} {.|..if {![|
|000008f0| 63 61 74 63 68 20 7b 64 | 6f 73 63 20 2d 6e 20 54 |catch {d|osc -n T|
|00000900| 6f 6f 6c 53 65 72 76 65 | 72 20 2d 73 20 24 5f 74 |oolServe|r -s $_t|
|00000910| 65 78 74 7d 20 5f 72 65 | 74 75 72 6e 54 65 78 74 |ext} _re|turnText|
|00000920| 5d 7d 20 7b 0d 09 09 09 | 69 6e 73 65 72 74 54 65 |]} {....|insertTe|
|00000930| 78 74 20 22 5c 72 22 20 | 24 5f 72 65 74 75 72 6e |xt "\r" |$_return|
|00000940| 54 65 78 74 0d 09 09 7d | 20 65 6c 73 65 20 7b 0d |Text...}| else {.|
|00000950| 09 09 09 69 6e 73 65 72 | 74 54 65 78 74 20 22 5c |...inser|tText "\|
|00000960| 72 22 0d 09 09 7d 0d 09 | 09 6d 70 77 50 72 6f 6d |r"...}..|.mpwProm|
|00000970| 70 74 0d 09 7d 20 65 6c | 73 65 69 66 20 7b 24 66 |pt..} el|seif {$f|
|00000980| 69 6c 65 4e 61 6d 65 20 | 3d 3d 20 22 2a 20 43 6f |ileName |== "* Co|
|00000990| 6d 65 74 20 53 65 72 76 | 65 72 20 2a 22 7d 20 7b |met Serv|er *"} {|
|000009a0| 0d 09 09 63 6f 6d 65 74 | 53 65 6e 64 41 6e 64 50 |...comet|SendAndP|
|000009b0| 72 6f 6d 70 74 20 24 5f | 74 65 78 74 0d 09 7d 20 |rompt $_|text..} |
|000009c0| 65 6c 73 65 20 7b 0d 09 | 09 75 70 6c 65 76 65 6c |else {..|.uplevel|
|000009d0| 20 23 30 20 7b 63 61 74 | 63 68 20 24 5f 74 65 78 | #0 {cat|ch $_tex|
|000009e0| 74 20 5f 72 65 74 75 72 | 6e 54 65 78 74 7d 0d 09 |t _retur|nText}..|
|000009f0| 09 68 69 73 74 6f 72 79 | 20 61 64 64 20 24 5f 74 |.history| add $_t|
|00000a00| 65 78 74 0d 09 09 69 66 | 20 7b 5b 73 74 72 69 6e |ext...if| {[strin|
|00000a10| 67 20 6c 65 6e 67 74 68 | 20 24 5f 72 65 74 75 72 |g length| $_retur|
|00000a20| 6e 54 65 78 74 5d 7d 20 | 7b 0d 09 09 09 69 6e 73 |nText]} |{....ins|
|00000a30| 65 72 74 54 65 78 74 20 | 2d 77 20 24 66 69 6c 65 |ertText |-w $file|
|00000a40| 4e 61 6d 65 20 22 5c 72 | 22 20 24 5f 72 65 74 75 |Name "\r|" $_retu|
|00000a50| 72 6e 54 65 78 74 20 5b | 73 68 65 6c 6c 50 72 6f |rnText [|shellPro|
|00000a60| 6d 70 74 5d 0d 09 09 7d | 20 65 6c 73 65 20 7b 0d |mpt]...}| else {.|
|00000a70| 09 09 09 69 6e 73 65 72 | 74 54 65 78 74 20 2d 77 |...inser|tText -w|
|00000a80| 20 24 66 69 6c 65 4e 61 | 6d 65 20 5b 73 68 65 6c | $fileNa|me [shel|
|00000a90| 6c 50 72 6f 6d 70 74 5d | 0d 09 09 7d 0d 09 09 73 |lPrompt]|...}...s|
|00000aa0| 65 74 20 68 69 73 74 6e | 75 6d 20 5b 68 69 73 74 |et histn|um [hist|
|00000ab0| 6f 72 79 20 6e 65 78 74 | 69 64 5d 0d 09 7d 0d 09 |ory next|id]..}..|
|00000ac0| 75 6e 73 65 74 20 5f 74 | 65 78 74 0d 09 75 6e 73 |unset _t|ext..uns|
|00000ad0| 65 74 20 5f 72 65 74 75 | 72 6e 54 65 78 74 0d 7d |et _retu|rnText.}|
|00000ae0| 0d 62 69 6e 64 20 27 5c | 72 27 20 63 61 72 72 69 |.bind '\|r' carri|
|00000af0| 61 67 65 52 65 74 75 72 | 6e 0d 62 69 6e 64 20 27 |ageRetur|n.bind '|
|00000b00| 5c 72 27 20 73 68 65 6c | 6c 43 61 72 72 69 61 67 |\r' shel|lCarriag|
|00000b10| 65 52 65 74 75 72 6e 20 | 22 53 68 65 6c 22 0d 62 |eReturn |"Shel".b|
|00000b20| 69 6e 64 20 27 5c 72 27 | 20 73 68 65 6c 6c 43 61 |ind '\r'| shellCa|
|00000b30| 72 72 69 61 67 65 52 65 | 74 75 72 6e 20 22 4d 50 |rriageRe|turn "MP|
|00000b40| 57 22 0d 0d 0d 62 69 6e | 64 20 75 70 20 3c 7a 3e |W"...bin|d up <z>|
|00000b50| 20 70 72 65 76 48 69 73 | 74 20 53 68 65 6c 0d 62 | prevHis|t Shel.b|
|00000b60| 69 6e 64 20 64 6f 77 6e | 20 3c 7a 3e 20 6e 65 78 |ind down| <z> nex|
|00000b70| 74 48 69 73 74 20 53 68 | 65 6c 0d 0d 70 72 6f 63 |tHist Sh|el..proc|
|00000b80| 20 70 72 65 76 48 69 73 | 74 20 7b 7d 20 7b 0d 09 | prevHis|t {} {..|
|00000b90| 67 6c 6f 62 61 6c 20 68 | 69 73 74 6e 75 6d 0d 09 |global h|istnum..|
|00000ba0| 0d 09 73 65 74 20 74 65 | 78 74 20 5b 67 65 74 54 |..set te|xt [getT|
|00000bb0| 65 78 74 20 5b 6c 69 6e | 65 53 74 61 72 74 20 5b |ext [lin|eStart [|
|00000bc0| 67 65 74 50 6f 73 5d 5d | 20 5b 6e 65 78 74 4c 69 |getPos]]| [nextLi|
|00000bd0| 6e 65 53 74 61 72 74 20 | 5b 67 65 74 50 6f 73 5d |neStart |[getPos]|
|00000be0| 5d 5d 0d 09 69 66 20 7b | 5b 73 65 74 20 69 6e 64 |]]..if {|[set ind|
|00000bf0| 20 5b 73 74 72 69 6e 67 | 20 66 69 72 73 74 20 22 | [string| first "|
|00000c00| c8 20 22 20 24 74 65 78 | 74 5d 5d 20 3e 20 30 7d |. " $tex|t]] > 0}|
|00000c10| 20 7b 0d 09 09 67 6f 74 | 6f 20 5b 65 78 70 72 20 | {...got|o [expr |
|00000c20| 5b 6c 69 6e 65 53 74 61 | 72 74 20 5b 67 65 74 50 |[lineSta|rt [getP|
|00000c30| 6f 73 5d 5d 20 2b 20 24 | 69 6e 64 20 2b 20 32 5d |os]] + $|ind + 2]|
|00000c40| 0d 09 7d 20 65 6c 73 65 | 20 72 65 74 75 72 6e 0d |..} else| return.|
|00000c50| 0d 09 69 6e 63 72 20 68 | 69 73 74 6e 75 6d 20 2d |..incr h|istnum -|
|00000c60| 31 0d 09 69 66 20 7b 5b | 63 61 74 63 68 20 7b 68 |1..if {[|catch {h|
|00000c70| 69 73 74 6f 72 79 20 65 | 76 65 6e 74 20 24 68 69 |istory e|vent $hi|
|00000c80| 73 74 6e 75 6d 7d 20 74 | 65 78 74 5d 7d 20 7b 0d |stnum} t|ext]} {.|
|00000c90| 09 09 69 6e 63 72 20 68 | 69 73 74 6e 75 6d 0d 09 |..incr h|istnum..|
|00000ca0| 09 65 6e 64 4f 66 4c 69 | 6e 65 0d 09 09 72 65 74 |.endOfLi|ne...ret|
|00000cb0| 75 72 6e 0d 09 7d 0d 09 | 73 65 74 20 74 6f 20 5b |urn..}..|set to [|
|00000cc0| 6e 65 78 74 4c 69 6e 65 | 53 74 61 72 74 20 5b 67 |nextLine|Start [g|
|00000cd0| 65 74 50 6f 73 5d 5d 0d | 09 69 66 20 7b 5b 6c 6f |etPos]].|.if {[lo|
|00000ce0| 6f 6b 41 74 20 5b 65 78 | 70 72 20 24 74 6f 2d 31 |okAt [ex|pr $to-1|
|00000cf0| 5d 5d 20 3d 3d 20 22 5c | 72 22 7d 20 7b 69 6e 63 |]] == "\|r"} {inc|
|00000d00| 72 20 74 6f 20 2d 31 7d | 0d 09 72 65 70 6c 61 63 |r to -1}|..replac|
|00000d10| 65 54 65 78 74 20 5b 67 | 65 74 50 6f 73 5d 20 24 |eText [g|etPos] $|
|00000d20| 74 6f 20 24 74 65 78 74 | 0d 7d 0d 0d 0d 70 72 6f |to $text|.}...pro|
|00000d30| 63 20 6e 65 78 74 48 69 | 73 74 20 7b 7d 20 7b 0d |c nextHi|st {} {.|
|00000d40| 09 67 6c 6f 62 61 6c 20 | 68 69 73 74 6e 75 6d 0d |.global |histnum.|
|00000d50| 09 0d 09 73 65 74 20 74 | 65 78 74 20 5b 67 65 74 |...set t|ext [get|
|00000d60| 54 65 78 74 20 5b 6c 69 | 6e 65 53 74 61 72 74 20 |Text [li|neStart |
|00000d70| 5b 67 65 74 50 6f 73 5d | 5d 20 5b 6e 65 78 74 4c |[getPos]|] [nextL|
|00000d80| 69 6e 65 53 74 61 72 74 | 20 5b 67 65 74 50 6f 73 |ineStart| [getPos|
|00000d90| 5d 5d 5d 0d 09 69 66 20 | 7b 5b 73 65 74 20 69 6e |]]]..if |{[set in|
|00000da0| 64 20 5b 73 74 72 69 6e | 67 20 66 69 72 73 74 20 |d [strin|g first |
|00000db0| 22 c8 20 22 20 24 74 65 | 78 74 5d 5d 20 3e 20 30 |". " $te|xt]] > 0|
|00000dc0| 7d 20 7b 0d 09 09 67 6f | 74 6f 20 5b 65 78 70 72 |} {...go|to [expr|
|00000dd0| 20 5b 6c 69 6e 65 53 74 | 61 72 74 20 5b 67 65 74 | [lineSt|art [get|
|00000de0| 50 6f 73 5d 5d 20 2b 20 | 24 69 6e 64 20 2b 20 32 |Pos]] + |$ind + 2|
|00000df0| 5d 0d 09 7d 20 65 6c 73 | 65 20 72 65 74 75 72 6e |]..} els|e return|
|00000e00| 0d 0d 09 69 6e 63 72 20 | 68 69 73 74 6e 75 6d 0d |...incr |histnum.|
|00000e10| 09 69 66 20 7b 5b 63 61 | 74 63 68 20 7b 68 69 73 |.if {[ca|tch {his|
|00000e20| 74 6f 72 79 20 65 76 65 | 6e 74 20 24 68 69 73 74 |tory eve|nt $hist|
|00000e30| 6e 75 6d 7d 20 74 65 78 | 74 5d 7d 20 7b 0d 09 09 |num} tex|t]} {...|
|00000e40| 69 6e 63 72 20 68 69 73 | 74 6e 75 6d 20 2d 31 0d |incr his|tnum -1.|
|00000e50| 09 09 65 6e 64 4f 66 4c | 69 6e 65 0d 09 09 72 65 |..endOfL|ine...re|
|00000e60| 74 75 72 6e 0d 09 7d 0d | 09 73 65 74 20 74 6f 20 |turn..}.|.set to |
|00000e70| 5b 6e 65 78 74 4c 69 6e | 65 53 74 61 72 74 20 5b |[nextLin|eStart [|
|00000e80| 67 65 74 50 6f 73 5d 5d | 0d 09 69 66 20 7b 5b 6c |getPos]]|..if {[l|
|00000e90| 6f 6f 6b 41 74 20 5b 65 | 78 70 72 20 24 74 6f 2d |ookAt [e|xpr $to-|
|00000ea0| 31 5d 5d 20 3d 3d 20 22 | 5c 72 22 7d 20 7b 69 6e |1]] == "|\r"} {in|
|00000eb0| 63 72 20 74 6f 20 2d 31 | 7d 0d 09 72 65 70 6c 61 |cr to -1|}..repla|
|00000ec0| 63 65 54 65 78 74 20 5b | 67 65 74 50 6f 73 5d 20 |ceText [|getPos] |
|00000ed0| 24 74 6f 20 24 74 65 78 | 74 0d 7d 0d 0d 09 0d 70 |$to $tex|t.}....p|
|00000ee0| 72 6f 63 20 73 74 61 72 | 74 4d 50 57 20 7b 7d 20 |roc star|tMPW {} |
|00000ef0| 7b 0d 09 67 6c 6f 62 61 | 6c 20 74 6f 6f 6c 73 65 |{..globa|l toolse|
|00000f00| 72 76 65 72 50 61 74 68 | 0d 0d 09 69 66 20 7b 21 |rverPath|...if {!|
|00000f10| 5b 73 74 72 69 6e 67 20 | 6c 65 6e 67 74 68 20 5b |[string |length [|
|00000f20| 63 68 65 63 6b 52 75 6e | 6e 69 6e 67 20 54 6f 6f |checkRun|ning Too|
|00000f30| 6c 53 65 72 76 65 72 20 | 4d 50 53 58 20 74 6f 6f |lServer |MPSX too|
|00000f40| 6c 73 65 72 76 65 72 50 | 61 74 68 5d 5d 7d 20 72 |lserverP|ath]]} r|
|00000f50| 65 74 75 72 6e 0d 0d 09 | 69 6e 73 65 72 74 54 65 |eturn...|insertTe|
|00000f60| 78 74 20 22 57 65 6c 63 | 6f 6d 65 20 74 6f 20 41 |xt "Welc|ome to A|
|00000f70| 6c 70 68 61 27 73 20 4d | 50 57 20 73 68 65 6c 6c |lpha's M|PW shell|
|00000f80| 20 28 75 73 69 6e 67 20 | 54 6f 6f 6c 53 65 72 76 | (using |ToolServ|
|00000f90| 65 72 20 76 69 61 20 41 | 70 70 6c 65 45 76 65 6e |er via A|ppleEven|
|00000fa0| 74 73 29 2e 22 0d 09 62 | 69 6e 64 20 27 5c 72 27 |ts)."..b|ind '\r'|
|00000fb0| 20 73 68 65 6c 6c 43 61 | 72 72 69 61 67 65 52 65 | shellCa|rriageRe|
|00000fc0| 74 75 72 6e 20 22 4d 50 | 57 22 0d 09 63 61 72 72 |turn "MP|W"..carr|
|00000fd0| 69 61 67 65 52 65 74 75 | 72 6e 0d 09 6d 70 77 50 |iageRetu|rn..mpwP|
|00000fe0| 72 6f 6d 70 74 0d 7d 0d | 70 72 6f 63 20 6d 70 77 |rompt.}.|proc mpw|
|00000ff0| 50 72 6f 6d 70 74 20 7b | 7d 20 7b 0d 09 69 6e 73 |Prompt {|} {..ins|
|00001000| 65 72 74 54 65 78 74 20 | 22 c7 6d 70 77 c8 20 22 |ertText |".mpw. "|
|00001010| 0d 7d 0d 0d 70 72 6f 63 | 20 73 65 74 4d 50 57 4d |.}..proc| setMPWM|
|00001020| 6f 64 65 20 7b 7d 20 7b | 0d 09 63 68 61 6e 67 65 |ode {} {|..change|
|00001030| 4d 6f 64 65 20 22 4d 50 | 57 22 0d 7d 0d 0d 23 09 |Mode "MP|W".}..#.|
|00001040| 73 68 65 6c 6c 43 61 72 | 72 69 61 67 65 52 65 74 |shellCar|riageRet|
|00001050| 75 72 6e 0d 0d 0d 0d 23 | 3d 3d 3d 3d 3d 3d 3d 3d |urn....#|========|
|00001060| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001070| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001080| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000010a0| 3d 3d 3d 3d 3d 0d 23 09 | 53 68 65 6c 6c 20 41 6c |=====.#.|Shell Al|
|000010b0| 69 61 73 65 73 0d 23 3d | 3d 3d 3d 3d 3d 3d 3d 3d |iases.#=|========|
|000010c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000010d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000010e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000010f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001100| 3d 3d 3d 3d 0d 0d 0d 70 | 72 6f 63 20 6c 20 7b 61 |====...p|roc l {a|
|00001110| 72 67 73 7d 20 7b 0d 09 | 65 76 61 6c 20 5b 63 6f |rgs} {..|eval [co|
|00001120| 6e 63 61 74 20 22 6c 73 | 20 2d 43 46 22 20 24 61 |ncat "ls| -CF" $a|
|00001130| 72 67 73 5d 7d 0d 0d 70 | 72 6f 63 20 6c 6c 20 7b |rgs]}..p|roc ll {|
|00001140| 61 72 67 73 7d 20 7b 0d | 09 65 76 61 6c 20 5b 63 |args} {.|.eval [c|
|00001150| 6f 6e 63 61 74 20 22 6c | 73 20 2d 6c 22 20 24 61 |oncat "l|s -l" $a|
|00001160| 72 67 73 5d 7d 0d 0d 0d | 70 72 6f 63 20 77 63 20 |rgs]}...|proc wc |
|00001170| 7b 61 72 67 73 7d 20 7b | 0d 09 73 65 74 20 72 65 |{args} {|..set re|
|00001180| 73 20 7b 7d 0d 09 73 65 | 74 20 74 6f 74 43 68 61 |s {}..se|t totCha|
|00001190| 72 73 20 30 0d 09 73 65 | 74 20 74 6f 74 4c 69 6e |rs 0..se|t totLin|
|000011a0| 65 73 20 30 0d 09 73 65 | 74 20 74 6f 74 57 6f 72 |es 0..se|t totWor|
|000011b0| 64 73 20 30 0d 09 73 65 | 74 20 61 72 67 73 20 5b |ds 0..se|t args [|
|000011c0| 67 6c 6f 62 20 2d 6e 6f | 63 6f 6d 70 6c 61 69 6e |glob -no|complain|
|000011d0| 20 24 61 72 67 73 5d 0d | 09 66 6f 72 65 61 63 68 | $args].|.foreach|
|000011e0| 20 66 69 6c 65 20 24 61 | 72 67 73 20 7b 0d 09 09 | file $a|rgs {...|
|000011f0| 73 65 74 20 69 64 20 5b | 6f 70 65 6e 20 24 66 69 |set id [|open $fi|
|00001200| 6c 65 5d 0d 09 09 73 65 | 74 20 63 68 61 72 73 20 |le]...se|t chars |
|00001210| 5b 73 74 72 69 6e 67 20 | 6c 65 6e 67 74 68 20 5b |[string |length [|
|00001220| 73 65 74 20 74 65 78 74 | 20 5b 72 65 61 64 20 24 |set text| [read $|
|00001230| 69 64 5d 5d 5d 0d 09 09 | 73 65 74 20 6c 69 6e 65 |id]]]...|set line|
|00001240| 73 20 5b 6c 6c 65 6e 67 | 74 68 20 5b 73 70 6c 69 |s [lleng|th [spli|
|00001250| 74 20 24 74 65 78 74 20 | 22 5c 6e 22 5d 5d 0d 09 |t $text |"\n"]]..|
|00001260| 09 73 65 74 20 77 6f 72 | 64 73 20 5b 6c 6c 65 6e |.set wor|ds [llen|
|00001270| 67 74 68 20 5b 73 70 6c | 69 74 20 24 74 65 78 74 |gth [spl|it $text|
|00001280| 5d 5d 0d 09 09 61 70 70 | 65 6e 64 20 72 65 73 20 |]]...app|end res |
|00001290| 5b 66 6f 72 6d 61 74 20 | 22 5c 72 25 38 64 25 38 |[format |"\r%8d%8|
|000012a0| 64 25 38 64 20 20 20 20 | 24 66 69 6c 65 22 20 24 |d%8d |$file" $|
|000012b0| 6c 69 6e 65 73 20 24 77 | 6f 72 64 73 20 24 63 68 |lines $w|ords $ch|
|000012c0| 61 72 73 5d 0d 09 09 73 | 65 74 20 74 6f 74 43 68 |ars]...s|et totCh|
|000012d0| 61 72 73 20 5b 65 78 70 | 72 20 24 74 6f 74 43 68 |ars [exp|r $totCh|
|000012e0| 61 72 73 2b 24 63 68 61 | 72 73 5d 0d 09 09 73 65 |ars+$cha|rs]...se|
|000012f0| 74 20 74 6f 74 57 6f 72 | 64 73 20 5b 65 78 70 72 |t totWor|ds [expr|
|00001300| 20 24 74 6f 74 57 6f 72 | 64 73 2b 24 77 6f 72 64 | $totWor|ds+$word|
|00001310| 73 5d 0d 09 09 73 65 74 | 20 74 6f 74 4c 69 6e 65 |s]...set| totLine|
|00001320| 73 20 5b 65 78 70 72 20 | 24 74 6f 74 4c 69 6e 65 |s [expr |$totLine|
|00001330| 73 2b 24 6c 69 6e 65 73 | 5d 0d 09 09 63 6c 6f 73 |s+$lines|]...clos|
|00001340| 65 20 24 69 64 0d 09 7d | 0d 09 69 66 20 7b 5b 6c |e $id..}|..if {[l|
|00001350| 6c 65 6e 67 74 68 20 24 | 61 72 67 73 5d 20 3e 20 |length $|args] > |
|00001360| 31 7d 20 7b 0d 09 09 61 | 70 70 65 6e 64 20 72 65 |1} {...a|ppend re|
|00001370| 73 20 5b 66 6f 72 6d 61 | 74 20 22 5c 72 25 38 64 |s [forma|t "\r%8d|
|00001380| 25 38 64 25 38 64 20 20 | 20 20 74 6f 74 61 6c 22 |%8d%8d | total"|
|00001390| 20 24 74 6f 74 4c 69 6e | 65 73 20 24 74 6f 74 57 | $totLin|es $totW|
|000013a0| 6f 72 64 73 20 24 74 6f | 74 43 68 61 72 73 5d 0d |ords $to|tChars].|
|000013b0| 09 7d 0d 09 72 65 74 75 | 72 6e 20 5b 73 74 72 69 |.}..retu|rn [stri|
|000013c0| 6e 67 20 72 61 6e 67 65 | 20 24 72 65 73 20 31 20 |ng range| $res 1 |
|000013d0| 65 6e 64 5d 0d 7d 0d 0d | 23 3d 3d 3d 3d 3d 3d 3d |end].}..|#=======|
|000013e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000013f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001400| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001410| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001420| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0d 0d 70 72 6f 63 |========|=...proc|
|00001430| 20 74 63 6c 46 69 6c 65 | 43 6f 6d 70 6c 65 74 69 | tclFile|Completi|
|00001440| 6f 6e 20 7b 7d 20 7b 0d | 09 73 65 74 20 73 69 6c |on {} {.|.set sil|
|00001450| 6c 79 20 22 2a 22 0d 09 | 73 65 74 20 70 6f 73 20 |ly "*"..|set pos |
|00001460| 5b 67 65 74 50 6f 73 5d | 0d 09 73 65 74 20 72 65 |[getPos]|..set re|
|00001470| 73 20 5b 73 65 61 72 63 | 68 20 2d 66 20 30 20 2d |s [searc|h -f 0 -|
|00001480| 69 20 30 20 2d 6d 20 30 | 20 2d 72 20 31 20 2d 6e |i 0 -m 0| -r 1 -n|
|00001490| 20 7b 5b 22 5c 7b 20 5c | 74 5c 72 5d 7d 20 5b 65 | {["\{ \|t\r]} [e|
|000014a0| 78 70 72 20 24 70 6f 73 | 20 2d 20 31 5d 5d 0d 09 |xpr $pos| - 1]]..|
|000014b0| 69 66 20 7b 5b 73 74 72 | 69 6e 67 20 6c 65 6e 67 |if {[str|ing leng|
|000014c0| 74 68 20 24 72 65 73 5d | 7d 20 7b 0d 09 09 73 65 |th $res]|} {...se|
|000014d0| 74 20 66 72 6f 6d 20 5b | 6c 69 6e 64 65 78 20 24 |t from [|lindex $|
|000014e0| 72 65 73 20 31 5d 0d 09 | 09 69 66 20 7b 24 66 72 |res 1]..|.if {$fr|
|000014f0| 6f 6d 20 3c 20 24 70 6f | 73 7d 20 7b 0d 09 09 09 |om < $po|s} {....|
|00001500| 73 65 74 20 70 64 20 5b | 70 77 64 5d 0d 09 09 09 |set pd [|pwd]....|
|00001510| 73 65 74 20 74 65 78 74 | 20 5b 67 65 74 54 65 78 |set text| [getTex|
|00001520| 74 20 24 66 72 6f 6d 20 | 24 70 6f 73 5d 0d 09 09 |t $from |$pos]...|
|00001530| 09 69 66 20 7b 5b 73 74 | 72 69 6e 67 20 69 6e 64 |.if {[st|ring ind|
|00001540| 65 78 20 24 74 65 78 74 | 20 30 5d 20 3d 3d 20 22 |ex $text| 0] == "|
|00001550| 3a 22 7d 20 7b 0d 09 09 | 09 09 73 65 74 20 70 64 |:"} {...|..set pd|
|00001560| 20 5b 73 74 72 69 6e 67 | 20 74 72 69 6d 72 69 67 | [string| trimrig|
|00001570| 68 74 20 24 70 64 20 22 | 3a 22 5d 0d 09 09 09 7d |ht $pd "|:"]....}|
|00001580| 0d 09 09 09 69 66 20 7b | 5b 63 61 74 63 68 20 7b |....if {|[catch {|
|00001590| 67 6c 6f 62 20 24 70 64 | 24 74 65 78 74 24 73 69 |glob $pd|$text$si|
|000015a0| 6c 6c 79 7d 20 67 6c 6f | 62 62 65 64 5d 7d 20 7b |lly} glo|bbed]} {|
|000015b0| 0d 09 09 09 09 73 65 74 | 20 67 6c 6f 62 62 65 64 |.....set| globbed|
|000015c0| 20 5b 67 6c 6f 62 20 24 | 74 65 78 74 24 73 69 6c | [glob $|text$sil|
|000015d0| 6c 79 5d 0d 09 09 09 09 | 73 65 74 20 70 64 20 22 |ly].....|set pd "|
|000015e0| 22 0d 09 09 09 7d 0d 09 | 09 09 69 66 20 7b 5b 6c |"....}..|..if {[l|
|000015f0| 6c 65 6e 67 74 68 20 24 | 67 6c 6f 62 62 65 64 5d |length $|globbed]|
|00001600| 20 3d 3d 20 31 7d 20 7b | 0d 09 09 09 09 73 65 74 | == 1} {|.....set|
|00001610| 20 6c 65 6e 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e | len [st|ring len|
|00001620| 67 74 68 20 24 70 64 24 | 74 65 78 74 5d 0d 09 09 |gth $pd$|text]...|
|00001630| 09 09 69 6e 73 65 72 74 | 54 65 78 74 20 5b 73 74 |..insert|Text [st|
|00001640| 72 69 6e 67 20 72 61 6e | 67 65 20 5b 6c 69 6e 64 |ring ran|ge [lind|
|00001650| 65 78 20 24 67 6c 6f 62 | 62 65 64 20 30 5d 20 24 |ex $glob|bed 0] $|
|00001660| 6c 65 6e 20 65 6e 64 5d | 0d 09 09 09 7d 20 65 6c |len end]|....} el|
|00001670| 73 65 69 66 20 7b 5b 6c | 6c 65 6e 67 74 68 20 24 |seif {[l|length $|
|00001680| 67 6c 6f 62 62 65 64 5d | 20 21 3d 20 30 7d 20 7b |globbed]| != 0} {|
|00001690| 0d 09 09 09 09 73 65 74 | 20 67 6c 6f 62 62 65 64 |.....set| globbed|
|000016a0| 20 5b 6c 73 6f 72 74 20 | 24 67 6c 6f 62 62 65 64 | [lsort |$globbed|
|000016b0| 5d 0d 09 09 09 09 73 65 | 74 20 6f 6e 65 20 5b 6c |].....se|t one [l|
|000016c0| 69 6e 64 65 78 20 24 67 | 6c 6f 62 62 65 64 20 30 |index $g|lobbed 0|
|000016d0| 5d 0d 09 09 09 09 73 65 | 74 20 74 77 6f 20 5b 6c |].....se|t two [l|
|000016e0| 69 6e 64 65 78 20 24 67 | 6c 6f 62 62 65 64 20 65 |index $g|lobbed e|
|000016f0| 6e 64 5d 0d 09 09 09 09 | 0d 09 09 09 09 73 65 74 |nd].....|.....set|
|00001700| 20 6c 65 6e 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e | len [st|ring len|
|00001710| 67 74 68 20 24 70 64 24 | 74 65 78 74 5d 0d 09 09 |gth $pd$|text]...|
|00001720| 09 09 73 65 74 20 6f 6e | 65 20 5b 73 74 72 69 6e |..set on|e [strin|
|00001730| 67 20 72 61 6e 67 65 20 | 24 6f 6e 65 20 24 6c 65 |g range |$one $le|
|00001740| 6e 20 65 6e 64 5d 0d 09 | 09 09 09 73 65 74 20 74 |n end]..|...set t|
|00001750| 77 6f 20 5b 73 74 72 69 | 6e 67 20 72 61 6e 67 65 |wo [stri|ng range|
|00001760| 20 24 74 77 6f 20 24 6c | 65 6e 20 65 6e 64 5d 0d | $two $l|en end].|
|00001770| 09 09 09 09 0d 09 09 09 | 09 73 65 74 20 65 6c 65 |........|.set ele|
|00001780| 6e 20 5b 73 74 72 69 6e | 67 20 6c 65 6e 67 74 68 |n [strin|g length|
|00001790| 20 24 6f 6e 65 5d 0d 09 | 09 09 09 69 66 20 7b 5b | $one]..|...if {[|
|000017a0| 73 74 72 69 6e 67 20 6c | 65 6e 67 74 68 20 24 74 |string l|ength $t|
|000017b0| 77 6f 5d 20 3c 20 24 65 | 6c 65 6e 7d 20 7b 0d 09 |wo] < $e|len} {..|
|000017c0| 09 09 09 09 73 65 74 20 | 65 6c 65 6e 20 5b 73 74 |....set |elen [st|
|000017d0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 74 77 6f |ring len|gth $two|
|000017e0| 5d 0d 09 09 09 09 7d 0d | 09 09 09 09 73 65 74 20 |].....}.|....set |
|000017f0| 6c 65 6e 20 30 0d 09 09 | 09 09 73 65 74 20 73 74 |len 0...|..set st|
|00001800| 72 20 22 22 0d 09 09 09 | 09 77 68 69 6c 65 20 7b |r ""....|.while {|
|00001810| 28 24 6c 65 6e 20 3c 20 | 24 65 6c 65 6e 29 20 26 |($len < |$elen) &|
|00001820| 26 20 28 5b 73 74 72 69 | 6e 67 20 6d 61 74 63 68 |& ([stri|ng match|
|00001830| 20 24 73 74 72 5b 73 74 | 72 69 6e 67 20 69 6e 64 | $str[st|ring ind|
|00001840| 65 78 20 24 6f 6e 65 20 | 24 6c 65 6e 5d 24 73 69 |ex $one |$len]$si|
|00001850| 6c 6c 79 20 24 74 77 6f | 5d 29 7d 20 7b 0d 09 09 |lly $two|])} {...|
|00001860| 09 09 09 61 70 70 65 6e | 64 20 73 74 72 20 5b 73 |...appen|d str [s|
|00001870| 74 72 69 6e 67 20 69 6e | 64 65 78 20 24 6f 6e 65 |tring in|dex $one|
|00001880| 20 24 6c 65 6e 5d 0d 09 | 09 09 09 09 69 6e 63 72 | $len]..|....incr|
|00001890| 20 6c 65 6e 0d 09 09 09 | 09 7d 0d 0d 09 09 09 09 | len....|.}......|
|000018a0| 69 66 20 7b 21 24 6c 65 | 6e 7d 20 7b 0d 09 09 09 |if {!$le|n} {....|
|000018b0| 09 09 73 65 74 20 65 6c | 65 6e 20 5b 73 74 72 69 |..set el|en [stri|
|000018c0| 6e 67 20 6c 65 6e 67 74 | 68 20 24 70 64 5d 0d 09 |ng lengt|h $pd]..|
|000018d0| 09 09 09 09 66 6f 72 65 | 61 63 68 20 67 20 24 67 |....fore|ach g $g|
|000018e0| 6c 6f 62 62 65 64 20 7b | 0d 09 09 09 09 09 09 6c |lobbed {|.......l|
|000018f0| 61 70 70 65 6e 64 20 73 | 68 6f 72 74 20 5b 73 74 |append s|hort [st|
|00001900| 72 69 6e 67 20 72 61 6e | 67 65 20 24 67 20 24 65 |ring ran|ge $g $e|
|00001910| 6c 65 6e 20 65 6e 64 5d | 0d 09 09 09 09 09 7d 0d |len end]|......}.|
|00001920| 09 09 09 09 09 73 65 74 | 20 62 6c 61 68 20 5b 67 |.....set| blah [g|
|00001930| 65 74 54 65 78 74 20 5b | 6c 69 6e 65 53 74 61 72 |etText [|lineStar|
|00001940| 74 20 5b 67 65 74 50 6f | 73 5d 5d 20 5b 67 65 74 |t [getPo|s]] [get|
|00001950| 50 6f 73 5d 5d 0d 09 09 | 09 09 09 69 6e 73 65 72 |Pos]]...|...inser|
|00001960| 74 54 65 78 74 20 22 5c | 72 22 20 24 73 68 6f 72 |tText "\|r" $shor|
|00001970| 74 20 22 5c 72 22 20 24 | 62 6c 61 68 0d 09 09 09 |t "\r" $|blah....|
|00001980| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 09 09 09 69 |.} else |{......i|
|00001990| 6e 73 65 72 74 54 65 78 | 74 20 24 73 74 72 0d 09 |nsertTex|t $str..|
|000019a0| 09 09 09 7d 0d 09 09 09 | 7d 0d 09 09 7d 0d 09 7d |...}....|}...}..}|
|000019b0| 0d 7d 0d 0d 0d 0d 23 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.}....#=|========|
|000019c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000019d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000019e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000019f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001a00| 3d 3d 3d 3d 3d 3d 3d 0d | 23 20 54 6f 20 70 72 65 |=======.|# To pre|
|00001a10| 76 65 6e 74 20 61 6d 62 | 69 67 75 69 74 79 2c 20 |vent amb|iguity, |
|00001a20| 27 66 72 6f 6d 27 20 69 | 73 20 61 73 73 75 6d 65 |'from' i|s assume|
|00001a30| 64 20 74 6f 20 62 65 20 | 61 20 63 6f 6d 70 6c 65 |d to be |a comple|
|00001a40| 74 65 20 70 61 74 68 6e | 61 6d 65 2c 20 65 6e 64 |te pathn|ame, end|
|00001a50| 69 6e 67 0d 23 20 69 6e | 20 61 20 64 69 72 65 63 |ing.# in| a direc|
|00001a60| 74 6f 72 79 20 6e 61 6d | 65 2e 20 49 66 20 69 74 |tory nam|e. If it|
|00001a70| 20 64 6f 65 73 6e 27 74 | 20 65 6e 64 20 77 2f 20 | doesn't| end w/ |
|00001a80| 61 20 63 6f 6c 6f 6e 2c | 20 6f 6e 65 20 69 73 20 |a colon,| one is |
|00001a90| 61 64 64 65 64 2e 20 27 | 74 6f 27 20 69 73 0d 23 |added. '|to' is.#|
|00001aa0| 20 61 73 73 75 6d 65 64 | 20 74 6f 20 62 65 20 74 | assumed| to be t|
|00001ab0| 68 65 20 70 61 72 65 6e | 74 20 64 69 72 65 63 74 |he paren|t direct|
|00001ac0| 6f 72 79 20 6f 66 20 74 | 68 65 20 74 6f 70 20 64 |ory of t|he top d|
|00001ad0| 69 72 65 63 74 6f 72 79 | 20 77 65 20 61 72 65 20 |irectory| we are |
|00001ae0| 63 72 65 61 74 69 6e 67 | 2e 0d 23 3d 3d 3d 3d 3d |creating|..#=====|
|00001af0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001b00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001b10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001b20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001b30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 70 72 6f 63 |========|===.proc|
|00001b40| 20 63 70 64 69 72 20 7b | 66 72 6f 6d 20 74 6f 7d | cpdir {|from to}|
|00001b50| 20 7b 0d 09 73 65 74 20 | 63 77 64 20 5b 70 77 64 | {..set |cwd [pwd|
|00001b60| 5d 0d 09 69 66 20 7b 5b | 73 74 72 69 6e 67 20 6d |]..if {[|string m|
|00001b70| 61 74 63 68 20 22 3a 2a | 22 20 24 66 72 6f 6d 5d |atch ":*|" $from]|
|00001b80| 20 7c 7c 20 5b 73 74 72 | 69 6e 67 20 6d 61 74 63 | || [str|ing matc|
|00001b90| 68 20 22 3a 2a 22 20 24 | 74 6f 5d 20 7c 7c 0d 09 |h ":*" $|to] ||..|
|00001ba0| 09 21 5b 66 69 6c 65 20 | 65 78 69 73 74 73 20 24 |.![file |exists $|
|00001bb0| 66 72 6f 6d 5d 20 7c 7c | 20 21 5b 66 69 6c 65 20 |from] ||| ![file |
|00001bc0| 65 78 69 73 74 73 20 24 | 74 6f 5d 7d 20 7b 0d 09 |exists $|to]} {..|
|00001bd0| 09 65 72 72 6f 72 20 22 | 27 63 70 64 69 72 27 20 |.error "|'cpdir' |
|00001be0| 61 72 67 73 20 6d 75 73 | 74 20 62 65 20 63 6f 6d |args mus|t be com|
|00001bf0| 70 6c 65 74 65 20 70 61 | 74 68 6e 61 6d 65 73 20 |plete pa|thnames |
|00001c00| 6f 66 20 65 78 69 73 74 | 69 6e 67 20 66 6f 6c 64 |of exist|ing fold|
|00001c10| 65 72 73 2e 22 0d 09 7d | 0d 09 69 66 20 7b 21 5b |ers."..}|..if {![|
|00001c20| 73 74 72 69 6e 67 20 6d | 61 74 63 68 20 22 2a 3a |string m|atch "*:|
|00001c30| 22 20 24 66 72 6f 6d 5d | 7d 20 7b 61 70 70 65 6e |" $from]|} {appen|
|00001c40| 64 20 66 72 6f 6d 20 22 | 3a 22 7d 0d 09 69 66 20 |d from "|:"}..if |
|00001c50| 7b 21 5b 73 74 72 69 6e | 67 20 6d 61 74 63 68 20 |{![strin|g match |
|00001c60| 22 2a 3a 22 20 24 74 6f | 5d 7d 20 7b 61 70 70 65 |"*:" $to|]} {appe|
|00001c70| 6e 64 20 74 6f 20 22 3a | 22 7d 0d 09 0d 09 69 66 |nd to ":|"}....if|
|00001c80| 20 7b 21 5b 66 69 6c 65 | 20 69 73 64 69 72 20 24 | {![file| isdir $|
|00001c90| 66 72 6f 6d 5d 20 7c 7c | 20 21 5b 66 69 6c 65 20 |from] ||| ![file |
|00001ca0| 69 73 64 69 72 20 24 74 | 6f 5d 7d 20 7b 0d 09 09 |isdir $t|o]} {...|
|00001cb0| 65 78 69 74 20 31 0d 09 | 7d 0d 09 09 0d 09 73 65 |exit 1..|}.....se|
|00001cc0| 74 20 72 65 73 20 5b 63 | 61 74 63 68 20 7b 63 70 |t res [c|atch {cp|
|00001cd0| 68 69 65 72 20 24 66 72 | 6f 6d 20 24 74 6f 7d 20 |hier $fr|om $to} |
|00001ce0| 76 61 6c 5d 0d 09 63 64 | 20 24 63 77 64 0d 09 69 |val]..cd| $cwd..i|
|00001cf0| 66 20 7b 24 72 65 73 7d | 20 7b 65 72 72 6f 72 20 |f {$res}| {error |
|00001d00| 24 76 61 6c 7d 0d 7d 0d | 0d 70 72 6f 63 20 63 70 |$val}.}.|.proc cp|
|00001d10| 68 69 65 72 20 7b 66 72 | 6f 6d 20 74 6f 7d 20 7b |hier {fr|om to} {|
|00001d20| 0d 09 73 65 74 20 73 61 | 76 65 64 69 72 20 5b 70 |..set sa|vedir [p|
|00001d30| 77 64 5d 0d 09 69 66 20 | 7b 5b 73 74 72 69 6e 67 |wd]..if |{[string|
|00001d40| 20 69 6e 64 65 78 20 24 | 66 72 6f 6d 20 5b 65 78 | index $|from [ex|
|00001d50| 70 72 20 5b 73 74 72 69 | 6e 67 20 6c 65 6e 20 24 |pr [stri|ng len $|
|00001d60| 66 72 6f 6d 5d 20 2d 20 | 31 5d 5d 20 21 3d 20 22 |from] - |1]] != "|
|00001d70| 3a 22 7d 20 7b 61 70 70 | 65 6e 64 20 66 72 6f 6d |:"} {app|end from|
|00001d80| 20 22 3a 22 7d 0d 09 73 | 65 74 20 64 69 72 20 5b | ":"}..s|et dir [|
|00001d90| 66 69 6c 65 20 74 61 69 | 6c 20 5b 73 74 72 69 6e |file tai|l [strin|
|00001da0| 67 20 74 72 69 6d 72 69 | 67 68 74 20 24 66 72 6f |g trimri|ght $fro|
|00001db0| 6d 20 22 3a 22 5d 5d 0d | 09 63 64 20 24 74 6f 0d |m ":"]].|.cd $to.|
|00001dc0| 09 6d 6b 64 69 72 20 22 | 24 64 69 72 22 0d 09 66 |.mkdir "|$dir"..f|
|00001dd0| 6f 72 65 61 63 68 20 66 | 20 5b 67 6c 6f 62 20 22 |oreach f| [glob "|
|00001de0| 24 66 72 6f 6d 2a 22 5d | 20 7b 0d 09 09 69 66 20 |$from*"]| {...if |
|00001df0| 7b 5b 66 69 6c 65 20 69 | 73 64 69 72 20 24 66 5d |{[file i|sdir $f]|
|00001e00| 7d 20 7b 0d 09 09 09 63 | 70 68 69 65 72 20 22 24 |} {....c|phier "$|
|00001e10| 66 3a 22 20 22 24 74 6f | 24 64 69 72 3a 22 0d 09 |f:" "$to|$dir:"..|
|00001e20| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 09 63 70 20 |.} else |{....cp |
|00001e30| 24 66 20 24 74 6f 24 64 | 69 72 3a 0d 09 09 7d 0d |$f $to$d|ir:...}.|
|00001e40| 09 7d 0d 09 63 64 20 24 | 73 61 76 65 64 69 72 0d |.}..cd $|savedir.|
|00001e50| 7d 0d 0d 0d 70 72 6f 63 | 20 73 68 65 6c 6c 42 6f |}...proc| shellBo|
|00001e60| 6c 20 7b 7d 20 7b 0d 09 | 73 65 74 20 74 65 78 74 |l {} {..|set text|
|00001e70| 20 5b 67 65 74 54 65 78 | 74 20 5b 6c 69 6e 65 53 | [getTex|t [lineS|
|00001e80| 74 61 72 74 20 5b 67 65 | 74 50 6f 73 5d 5d 20 5b |tart [ge|tPos]] [|
|00001e90| 6e 65 78 74 4c 69 6e 65 | 53 74 61 72 74 20 5b 67 |nextLine|Start [g|
|00001ea0| 65 74 50 6f 73 5d 5d 5d | 0d 09 69 66 20 7b 5b 73 |etPos]]]|..if {[s|
|00001eb0| 65 74 20 69 6e 64 20 5b | 73 74 72 69 6e 67 20 66 |et ind [|string f|
|00001ec0| 69 72 73 74 20 22 c8 20 | 22 20 24 74 65 78 74 5d |irst ". |" $text]|
|00001ed0| 5d 20 3e 20 30 7d 20 7b | 0d 09 09 67 6f 74 6f 20 |] > 0} {|...goto |
|00001ee0| 5b 65 78 70 72 20 5b 6c | 69 6e 65 53 74 61 72 74 |[expr [l|ineStart|
|00001ef0| 20 5b 67 65 74 50 6f 73 | 5d 5d 20 2b 20 24 69 6e | [getPos|]] + $in|
|00001f00| 64 20 2b 20 32 5d 0d 09 | 7d 20 65 6c 73 65 20 7b |d + 2]..|} else {|
|00001f10| 0d 09 09 67 6f 74 6f 20 | 5b 6c 69 6e 65 53 74 61 |...goto |[lineSta|
|00001f20| 72 74 20 5b 67 65 74 50 | 6f 73 5d 5d 0d 09 7d 0d |rt [getP|os]]..}.|
|00001f30| 7d 0d 62 69 6e 64 20 27 | 61 27 20 3c 7a 3e 20 73 |}.bind '|a' <z> s|
|00001f40| 68 65 6c 6c 42 6f 6c 20 | 53 68 65 6c 0d 0d 0d 70 |hellBol |Shel...p|
|00001f50| 72 6f 63 20 64 75 6d 6d | 79 53 68 65 6c 20 7b 7d |roc dumm|yShel {}|
|00001f60| 20 7b 64 75 6d 6d 79 54 | 63 6c 7d 0d 0d 23 3d 3d | {dummyT|cl}..#==|
|00001f70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001fa0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001fb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0d |========|======..|
|00001fc0| 70 72 6f 63 20 73 68 65 | 6c 6c 75 70 20 7b 7d 20 |proc she|llup {} |
|00001fd0| 7b 0d 09 73 65 74 20 70 | 6f 73 20 5b 65 78 70 72 |{..set p|os [expr|
|00001fe0| 20 5b 6c 69 6e 65 53 74 | 61 72 74 20 5b 67 65 74 | [lineSt|art [get|
|00001ff0| 50 6f 73 5d 5d 20 2d 20 | 31 5d 0d 09 69 66 20 7b |Pos]] - |1]..if {|
|00002000| 5b 63 61 74 63 68 20 7b | 72 65 67 65 78 70 20 7b |[catch {|regexp {|
|00002010| b0 7d 20 5b 67 65 74 54 | 65 78 74 20 5b 6c 69 6e |.} [getT|ext [lin|
|00002020| 65 53 74 61 72 74 20 24 | 70 6f 73 5d 20 5b 6e 65 |eStart $|pos] [ne|
|00002030| 78 74 4c 69 6e 65 53 74 | 61 72 74 20 24 70 6f 73 |xtLineSt|art $pos|
|00002040| 5d 5d 7d 20 72 65 73 5d | 20 7c 7c 20 21 24 72 65 |]]} res]| || !$re|
|00002050| 73 7d 20 7b 0d 09 09 70 | 72 65 76 69 6f 75 73 4c |s} {...p|reviousL|
|00002060| 69 6e 65 3b 20 72 65 74 | 75 72 6e 0d 09 7d 0d 09 |ine; ret|urn..}..|
|00002070| 73 65 6c 65 63 74 20 5b | 6c 69 6e 65 53 74 61 72 |select [|lineStar|
|00002080| 74 20 24 70 6f 73 5d 20 | 5b 6e 65 78 74 4c 69 6e |t $pos] |[nextLin|
|00002090| 65 53 74 61 72 74 20 24 | 70 6f 73 5d 0d 7d 0d 62 |eStart $|pos].}.b|
|000020a0| 69 6e 64 20 75 70 20 73 | 68 65 6c 6c 75 70 20 53 |ind up s|hellup S|
|000020b0| 68 65 6c 0d 0d 0d 70 72 | 6f 63 20 73 68 65 6c 6c |hel...pr|oc shell|
|000020c0| 64 6f 77 6e 20 7b 7d 20 | 7b 0d 09 73 65 74 20 70 |down {} |{..set p|
|000020d0| 6f 73 20 5b 6e 65 78 74 | 4c 69 6e 65 53 74 61 72 |os [next|LineStar|
|000020e0| 74 20 5b 67 65 74 50 6f | 73 5d 5d 0d 09 69 66 20 |t [getPo|s]]..if |
|000020f0| 7b 5b 63 61 74 63 68 20 | 7b 72 65 67 65 78 70 20 |{[catch |{regexp |
|00002100| 7b b0 7d 20 5b 67 65 74 | 54 65 78 74 20 24 70 6f |{.} [get|Text $po|
|00002110| 73 20 5b 6e 65 78 74 4c | 69 6e 65 53 74 61 72 74 |s [nextL|ineStart|
|00002120| 20 24 70 6f 73 5d 5d 7d | 20 72 65 73 5d 20 7c 7c | $pos]]}| res] |||
|00002130| 20 21 24 72 65 73 7d 20 | 7b 0d 09 09 6e 65 78 74 | !$res} |{...next|
|00002140| 4c 69 6e 65 3b 20 72 65 | 74 75 72 6e 0d 09 7d 0d |Line; re|turn..}.|
|00002150| 09 73 65 6c 65 63 74 20 | 24 70 6f 73 20 5b 6e 65 |.select |$pos [ne|
|00002160| 78 74 4c 69 6e 65 53 74 | 61 72 74 20 24 70 6f 73 |xtLineSt|art $pos|
|00002170| 5d 0d 7d 0d 62 69 6e 64 | 20 64 6f 77 6e 20 73 68 |].}.bind| down sh|
|00002180| 65 6c 6c 64 6f 77 6e 20 | 53 68 65 6c 0d 0d 09 09 |elldown |Shel....|
|00002190| 0d 23 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.#======|========|
|000021a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000021b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000021c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000021d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000021e0| 3d 3d 0d 23 23 23 23 23 | 0d 23 20 28 55 73 61 67 |==.#####|.# (Usag|
|000021f0| 65 3a 20 20 27 6c 74 27 | 20 73 6f 72 74 73 20 62 |e: 'lt'| sorts b|
|00002200| 79 20 74 69 6d 65 2c 20 | 6c 69 6b 65 20 55 4e 49 |y time, |like UNI|
|00002210| 58 27 73 20 27 6c 73 20 | 2d 6c 74 27 2e 0d 23 20 |X's 'ls |-lt'..# |
|00002220| 20 20 20 20 20 20 20 20 | 20 27 6c 74 20 2d 74 27 | | 'lt -t'|
|00002230| 20 73 6f 72 74 73 20 62 | 79 20 66 69 6c 65 6e 61 | sorts b|y filena|
|00002240| 6d 65 2c 20 6c 69 6b 65 | 20 55 4e 49 58 27 73 20 |me, like| UNIX's |
|00002250| 27 6c 73 20 2d 6c 27 2e | 0d 23 20 20 20 20 20 20 |'ls -l'.|.# |
|00002260| 20 20 20 20 4f 70 74 69 | 6f 6e 61 6c 6c 79 20 61 | Opti|onally a|
|00002270| 20 64 69 72 65 63 74 6f | 72 79 20 6e 61 6d 65 20 | directo|ry name |
|00002280| 63 61 6e 20 62 65 20 61 | 64 64 65 64 20 61 73 20 |can be a|dded as |
|00002290| 61 6e 20 61 72 67 75 6d | 65 6e 74 2e 29 0d 0d 70 |an argum|ent.)..p|
|000022a0| 72 6f 63 20 73 6f 72 74 | 64 74 20 7b 64 74 7d 20 |roc sort|dt {dt} |
|000022b0| 7b 0d 20 20 20 20 20 20 | 20 20 73 63 61 6e 20 24 |{. | scan $|
|000022c0| 64 74 20 22 25 64 2f 25 | 64 2f 25 64 20 7b 25 64 |dt "%d/%|d/%d {%d|
|000022d0| 3a 25 64 3a 25 64 20 25 | 31 73 4d 7d 22 20 6d 6f |:%d:%d %|1sM}" mo|
|000022e0| 6e 20 64 61 79 20 79 65 | 61 20 68 6f 75 20 6d 69 |n day ye|a hou mi|
|000022f0| 6e 20 73 65 63 20 7a 0d | 20 20 20 20 20 20 20 20 |n sec z.| |
|00002300| 69 66 20 7b 24 7a 20 3d | 3d 20 22 50 22 7d 20 7b |if {$z =|= "P"} {|
|00002310| 69 6e 63 72 20 68 6f 75 | 20 31 32 7d 0d 20 20 20 |incr hou| 12}. |
|00002320| 20 20 20 20 20 69 66 20 | 7b 5b 73 74 72 69 6e 67 | if |{[string|
|00002330| 20 6c 65 6e 67 74 68 20 | 24 79 65 61 5d 20 3d 3d | length |$yea] ==|
|00002340| 20 31 7d 20 7b 0d 20 20 | 20 20 20 20 20 20 20 20 | 1} {. | |
|00002350| 20 20 20 20 20 20 73 65 | 74 20 79 65 61 72 20 32 | se|t year 2|
|00002360| 30 30 24 79 65 61 0d 20 | 20 20 20 20 20 20 20 7d |00$yea. | }|
|00002370| 20 65 6c 73 65 69 66 20 | 7b 24 79 65 61 20 3e 20 | elseif |{$yea > |
|00002380| 34 30 7d 20 7b 0d 20 20 | 20 20 20 20 20 20 20 20 |40} {. | |
|00002390| 20 20 20 20 20 20 73 65 | 74 20 79 65 61 72 20 31 | se|t year 1|
|000023a0| 39 24 79 65 61 0d 20 20 | 20 20 20 20 20 20 7d 20 |9$yea. | } |
|000023b0| 65 6c 73 65 20 7b 0d 20 | 20 20 20 20 20 20 20 20 |else {. | |
|000023c0| 20 20 20 20 20 20 20 73 | 65 74 20 79 65 61 72 20 | s|et year |
|000023d0| 32 30 24 79 65 61 0d 20 | 20 20 20 20 20 20 20 7d |20$yea. | }|
|000023e0| 0d 20 20 20 20 20 20 20 | 20 72 65 74 75 72 6e 20 |. | return |
|000023f0| 5b 66 6f 72 6d 61 74 20 | 22 25 30 34 64 25 30 32 |[format |"%04d%02|
|00002400| 64 25 30 32 64 25 30 32 | 64 25 30 32 64 22 20 24 |d%02d%02|d%02d" $|
|00002410| 79 65 61 72 20 24 6d 6f | 6e 20 24 64 61 79 20 24 |year $mo|n $day $|
|00002420| 68 6f 75 20 24 6d 69 6e | 5d 0d 7d 0d 0d 0d 70 72 |hou $min|].}...pr|
|00002430| 6f 63 20 6c 74 68 20 61 | 72 67 73 20 7b 0d 20 20 |oc lth a|rgs {. |
|00002440| 20 20 20 20 20 20 67 6c | 6f 62 61 6c 20 6d 6f 64 | gl|obal mod|
|00002450| 65 0d 20 20 20 20 20 20 | 20 20 0d 20 20 20 20 20 |e. | . |
|00002460| 20 20 20 73 65 74 20 76 | 61 6c 20 22 2a 22 0d 20 | set v|al "*". |
|00002470| 20 20 20 20 20 20 20 73 | 65 74 20 73 6f 72 74 20 | s|et sort |
|00002480| 31 0d 20 20 20 20 20 20 | 20 20 73 63 61 6e 20 5b |1. | scan [|
|00002490| 6c 69 6e 64 65 78 20 5b | 6d 74 69 6d 65 20 5b 6e |lindex [|mtime [n|
|000024a0| 6f 77 5d 5d 20 30 5d 20 | 22 25 64 2f 25 64 2f 25 |ow]] 0] |"%d/%d/%|
|000024b0| 64 22 20 6f 6e 65 20 74 | 77 6f 20 74 68 72 65 65 |d" one t|wo three|
|000024c0| 0d 20 20 20 20 20 20 20 | 20 69 66 20 7b 5b 73 74 |. | if {[st|
|000024d0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 74 68 72 |ring len|gth $thr|
|000024e0| 65 65 5d 20 3d 3d 20 31 | 7d 20 7b 0d 20 20 20 20 |ee] == 1|} {. |
|000024f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 73 65 74 20 | | set |
|00002500| 79 65 61 72 20 32 30 30 | 24 74 68 72 65 65 0d 20 |year 200|$three. |
|00002510| 20 20 20 20 20 20 20 7d | 20 65 6c 73 65 69 66 20 | }| elseif |
|00002520| 7b 24 74 68 72 65 65 20 | 3e 20 34 30 7d 20 7b 0d |{$three |> 40} {.|
|00002530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002540| 73 65 74 20 79 65 61 72 | 20 31 39 24 74 68 72 65 |set year| 19$thre|
|00002550| 65 0d 20 20 20 20 20 20 | 20 20 7d 20 65 6c 73 65 |e. | } else|
|00002560| 20 7b 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|00002570| 20 20 20 73 65 74 20 79 | 65 61 72 20 32 30 24 74 | set y|ear 20$t|
|00002580| 68 72 65 65 0d 20 20 20 | 20 20 20 20 20 7d 0d 20 |hree. | }. |
|00002590| 20 20 20 20 20 20 20 0d | 20 20 20 20 20 20 20 20 | .| |
|000025a0| 66 6f 72 65 61 63 68 20 | 61 72 67 20 24 61 72 67 |foreach |arg $arg|
|000025b0| 73 20 7b 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |s {. | |
|000025c0| 20 20 20 20 73 77 69 74 | 63 68 20 2d 2d 20 24 61 | swit|ch -- $a|
|000025d0| 72 67 20 7b 0d 20 20 20 | 20 20 20 20 20 20 20 20 |rg {. | |
|000025e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 22 2d 74 | | "-t|
|000025f0| 22 20 20 20 20 7b 73 65 | 74 20 73 6f 72 74 20 30 |" {se|t sort 0|
|00002600| 7d 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |}. | |
|00002610| 20 20 20 20 20 20 20 20 | 20 20 64 65 66 61 75 6c | | defaul|
|00002620| 74 20 7b 73 65 74 20 76 | 61 6c 20 24 61 72 67 7d |t {set v|al $arg}|
|00002630| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002640| 20 7d 0d 20 20 20 20 20 | 20 20 20 7d 0d 20 20 20 | }. | }. |
|00002650| 20 20 20 20 20 73 65 74 | 20 6d 6f 64 20 22 22 0d | set| mod "".|
|00002660| 20 20 20 20 20 20 20 20 | 66 6f 72 65 61 63 68 20 | |foreach |
|00002670| 66 20 5b 65 76 61 6c 20 | 67 6c 6f 62 20 24 76 61 |f [eval |glob $va|
|00002680| 6c 5d 20 7b 0d 20 20 20 | 20 20 20 20 20 20 20 20 |l] {. | |
|00002690| 20 20 20 20 20 69 66 20 | 7b 5b 63 61 74 63 68 20 | if |{[catch |
|000026a0| 7b 67 65 74 46 69 6c 65 | 49 6e 66 6f 20 24 66 20 |{getFile|Info $f |
|000026b0| 69 6e 66 6f 7d 5d 7d 20 | 7b 0d 20 20 20 20 20 20 |info}]} |{. |
|000026c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000026d0| 20 20 69 66 20 7b 24 73 | 6f 72 74 7d 20 7b 73 65 | if {$s|ort} {se|
|000026e0| 74 20 6d 6f 64 20 22 30 | 30 30 30 30 30 30 30 30 |t mod "0|00000000|
|000026f0| 30 30 30 20 22 7d 0d 20 | 20 20 20 20 20 20 20 20 |000 "}. | |
|00002700| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 6c | | l|
|00002710| 61 70 70 65 6e 64 20 74 | 65 78 74 20 5b 66 6f 72 |append t|ext [for|
|00002720| 6d 61 74 20 22 25 73 25 | 73 20 25 38 64 25 38 64 |mat "%s%|s %8d%8d|
|00002730| 20 25 36 73 20 25 35 73 | 20 25 34 73 20 25 73 20 | %6s %5s| %4s %s |
|00002740| 25 73 5c 6e 22 20 24 6d | 6f 64 20 22 44 22 20 22 |%s\n" $m|od "D" "|
|00002750| 30 22 20 22 30 22 20 22 | 22 20 22 22 20 22 22 20 |0" "0" "|" "" "" |
|00002760| 22 44 49 52 20 22 20 5b | 66 69 6c 65 20 74 61 69 |"DIR " [|file tai|
|00002770| 6c 20 24 66 5d 5d 0d 20 | 20 20 20 20 20 20 20 20 |l $f]]. | |
|00002780| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 63 | | c|
|00002790| 6f 6e 74 69 6e 75 65 0d | 20 20 20 20 20 20 20 20 |ontinue.| |
|000027a0| 20 20 20 20 20 20 20 20 | 7d 0d 20 20 20 20 20 20 | |}. |
|000027b0| 20 20 20 20 20 20 20 20 | 20 20 69 66 20 7b 24 73 | | if {$s|
|000027c0| 6f 72 74 7d 20 7b 73 65 | 74 20 6d 6f 64 20 22 5b |ort} {se|t mod "[|
|000027d0| 73 6f 72 74 64 74 20 5b | 6d 74 69 6d 65 20 24 69 |sortdt [|mtime $i|
|000027e0| 6e 66 6f 28 6d 6f 64 69 | 66 69 65 64 29 20 73 5d |nfo(modi|fied) s]|
|000027f0| 5d 20 22 7d 0d 20 20 20 | 20 20 20 20 20 20 20 20 |] "}. | |
|00002800| 20 20 20 20 20 73 65 74 | 20 6d 20 5b 6d 74 69 6d | set| m [mtim|
|00002810| 65 20 24 69 6e 66 6f 28 | 6d 6f 64 69 66 69 65 64 |e $info(|modified|
|00002820| 29 20 61 5d 0d 20 20 20 | 20 20 20 20 20 20 20 20 |) a]. | |
|00002830| 20 20 20 20 20 73 65 74 | 20 7a 65 72 20 5b 6c 69 | set| zer [li|
|00002840| 6e 64 65 78 20 24 6d 20 | 30 5d 0d 20 20 20 20 20 |ndex $m |0]. |
|00002850| 20 20 20 20 20 20 20 20 | 20 20 20 73 65 74 20 64 | | set d|
|00002860| 61 74 20 5b 66 6f 72 6d | 61 74 20 22 25 73 20 25 |at [form|at "%s %|
|00002870| 32 73 22 20 5b 6c 69 6e | 64 65 78 20 24 7a 65 72 |2s" [lin|dex $zer|
|00002880| 20 31 5d 20 5b 73 74 72 | 69 6e 67 20 74 72 69 6d | 1] [str|ing trim|
|00002890| 72 69 67 68 74 20 5b 6c | 69 6e 64 65 78 20 24 7a |right [l|index $z|
|000028a0| 65 72 20 32 5d 20 7b 2c | 7d 5d 5d 0d 20 20 20 20 |er 2] {,|}]]. |
|000028b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 7b | | if {|
|000028c0| 5b 6c 69 6e 64 65 78 20 | 24 7a 65 72 20 33 5d 20 |[lindex |$zer 3] |
|000028d0| 3d 3d 20 24 79 65 61 72 | 7d 20 7b 0d 20 20 20 20 |== $year|} {. |
|000028e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000028f0| 20 20 20 20 69 66 20 7b | 5b 73 63 61 6e 20 5b 6c | if {|[scan [l|
|00002900| 69 6e 64 65 78 20 24 6d | 20 31 5d 20 22 25 64 3a |index $m| 1] "%d:|
|00002910| 25 64 3a 25 64 20 25 73 | 22 20 6f 6e 65 20 74 77 |%d:%d %s|" one tw|
|00002920| 6f 20 74 68 72 65 65 20 | 61 6d 5d 20 21 3d 20 34 |o three |am] != 4|
|00002930| 7d 20 7b 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |} {. | |
|00002940| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002950| 20 20 20 20 65 72 72 6f | 72 20 22 44 69 64 6e 27 | erro|r "Didn'|
|00002960| 74 20 67 65 74 20 66 6f | 75 72 20 66 72 6f 6d 20 |t get fo|ur from |
|00002970| 73 63 61 6e 22 0d 20 20 | 20 20 20 20 20 20 20 20 |scan". | |
|00002980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00002990| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000029a0| 20 20 20 20 20 20 20 20 | 69 66 20 7b 5b 73 74 72 | |if {[str|
|000029b0| 69 6e 67 20 6c 65 6e 67 | 74 68 20 24 74 77 6f 5d |ing leng|th $two]|
|000029c0| 20 3d 3d 20 31 7d 20 7b | 73 65 74 20 74 77 6f 20 | == 1} {|set two |
|000029d0| 22 30 24 74 77 6f 22 7d | 0d 20 20 20 20 20 20 20 |"0$two"}|. |
|000029e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000029f0| 20 73 65 74 20 74 6d 20 | 5b 65 78 70 72 20 7b 24 | set tm |[expr {$|
|00002a00| 61 6d 20 3d 3d 20 22 41 | 4d 22 7d 20 3f 20 24 6f |am == "A|M"} ? $o|
|00002a10| 6e 65 20 3a 20 5b 65 78 | 70 72 20 24 6f 6e 65 20 |ne : [ex|pr $one |
|00002a20| 2b 20 31 32 5d 5d 3a 24 | 74 77 6f 0d 20 20 20 20 |+ 12]]:$|two. |
|00002a30| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 20 65 6c | | } el|
|00002a40| 73 65 20 7b 0d 20 20 20 | 20 20 20 20 20 20 20 20 |se {. | |
|00002a50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 73 65 74 | | set|
|00002a60| 20 74 6d 20 22 20 5b 6c | 69 6e 64 65 78 20 24 7a | tm " [l|index $z|
|00002a70| 65 72 20 33 5d 22 0d 20 | 20 20 20 20 20 20 20 20 |er 3]". | |
|00002a80| 20 20 20 20 20 20 20 7d | 0d 20 20 20 20 20 20 20 | }|. |
|00002a90| 20 20 20 20 20 20 20 20 | 20 6c 61 70 70 65 6e 64 | | lappend|
|00002aa0| 20 74 65 78 74 20 5b 66 | 6f 72 6d 61 74 20 22 25 | text [f|ormat "%|
|00002ab0| 73 46 20 25 38 64 25 38 | 64 20 25 73 20 25 35 73 |sF %8d%8|d %s %5s|
|00002ac0| 20 25 73 20 25 73 20 25 | 73 5c 6e 22 20 24 6d 6f | %s %s %|s\n" $mo|
|00002ad0| 64 20 24 69 6e 66 6f 28 | 64 61 74 61 6c 65 6e 29 |d $info(|datalen)|
|00002ae0| 20 24 69 6e 66 6f 28 72 | 65 73 6f 75 72 63 65 6c | $info(r|esourcel|
|00002af0| 65 6e 29 20 24 64 61 74 | 20 24 74 6d 20 24 69 6e |en) $dat| $tm $in|
|00002b00| 66 6f 28 74 79 70 65 29 | 20 24 69 6e 66 6f 28 63 |fo(type)| $info(c|
|00002b10| 72 65 61 74 6f 72 29 20 | 5b 66 69 6c 65 20 74 61 |reator) |[file ta|
|00002b20| 69 6c 20 24 66 5d 5d 0d | 20 20 20 20 20 20 20 20 |il $f]].| |
|00002b30| 7d 0d 20 20 20 20 20 20 | 20 20 69 66 20 7b 24 73 |}. | if {$s|
|00002b40| 6f 72 74 7d 20 7b 0d 20 | 20 20 20 20 20 20 20 20 |ort} {. | |
|00002b50| 20 20 20 20 20 20 20 66 | 6f 72 65 61 63 68 20 6c | f|oreach l|
|00002b60| 6e 20 5b 6c 73 6f 72 74 | 20 2d 64 65 20 24 74 65 |n [lsort| -de $te|
|00002b70| 78 74 5d 20 7b 0d 20 20 | 20 20 20 20 20 20 20 20 |xt] {. | |
|00002b80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 61 70 | | ap|
|00002b90| 70 65 6e 64 20 74 78 74 | 20 5b 73 74 72 69 6e 67 |pend txt| [string|
|00002ba0| 20 72 61 6e 67 65 20 24 | 6c 6e 20 31 33 20 65 6e | range $|ln 13 en|
|00002bb0| 64 5d 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |d]. | |
|00002bc0| 20 20 20 7d 0d 20 20 20 | 20 20 20 20 20 20 20 20 | }. | |
|00002bd0| 20 20 20 20 20 73 65 74 | 20 61 6e 73 20 5b 73 74 | set| ans [st|
|00002be0| 72 69 6e 67 20 74 72 69 | 6d 72 69 67 68 74 20 24 |ring tri|mright $|
|00002bf0| 74 78 74 5d 0d 20 20 20 | 20 20 20 20 20 7d 20 65 |txt]. | } e|
|00002c00| 6c 73 65 20 7b 0d 20 20 | 20 20 20 20 20 20 20 20 |lse {. | |
|00002c10| 20 20 20 20 20 20 73 65 | 74 20 61 6e 73 20 5b 73 | se|t ans [s|
|00002c20| 74 72 69 6e 67 20 74 72 | 69 6d 72 69 67 68 74 20 |tring tr|imright |
|00002c30| 5b 6a 6f 69 6e 20 24 74 | 65 78 74 20 7b 7d 5d 5d |[join $t|ext {}]]|
|00002c40| 0d 20 20 20 20 20 20 20 | 20 7d 0d 20 20 20 20 20 |. | }. |
|00002c50| 20 20 20 0d 20 20 20 20 | 20 20 20 20 69 66 20 7b | . | if {|
|00002c60| 20 24 6d 6f 64 65 3d 3d | 22 53 68 65 6c 22 20 7d | $mode==|"Shel" }|
|00002c70| 20 7b 20 72 65 74 75 72 | 6e 20 24 61 6e 73 20 7d | { retur|n $ans }|
|00002c80| 20 65 6c 73 65 20 7b 0d | 20 20 20 20 20 20 20 20 | else {.| |
|00002c90| 20 20 20 20 20 20 20 20 | 6e 65 77 0d 20 20 20 20 | |new. |
|00002ca0| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 6e 73 65 | | inse|
|00002cb0| 72 74 54 65 78 74 20 24 | 61 6e 73 20 22 5c 72 22 |rtText $|ans "\r"|
|00002cc0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002cd0| 20 63 61 74 63 68 20 73 | 68 72 69 6e 6b 48 65 69 | catch s|hrinkHei|
|00002ce0| 67 68 74 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |ght. | |
|00002cf0| 20 20 20 20 73 65 74 57 | 69 6e 49 6e 66 6f 20 64 | setW|inInfo d|
|00002d00| 69 72 74 79 20 30 0d 20 | 20 20 20 20 20 20 20 20 |irty 0. | |
|00002d10| 20 20 20 20 20 20 20 73 | 65 74 57 69 6e 49 6e 66 | s|etWinInf|
|00002d20| 6f 20 72 65 61 64 2d 6f | 6e 6c 79 20 31 0d 20 20 |o read-o|nly 1. |
|00002d30| 20 20 20 20 20 20 7d 0d | 7d 0d 0d 23 3d 3d 3d 3d | }.|}..#====|
|00002d40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002d50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002d60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002d70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002d80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 0d 70 72 6f |========|====.pro|
|00002d90| 63 20 70 73 20 7b 7d 20 | 7b 0d 09 66 6f 72 65 61 |c ps {} |{..forea|
|00002da0| 63 68 20 70 20 5b 70 72 | 6f 63 65 73 73 65 73 5d |ch p [pr|ocesses]|
|00002db0| 20 7b 0d 09 09 61 70 70 | 65 6e 64 20 74 65 78 74 | {...app|end text|
|00002dc0| 20 5b 66 6f 72 6d 61 74 | 20 22 25 2d 32 35 73 20 | [format| "%-25s |
|00002dd0| 25 34 73 20 25 31 30 64 | 20 25 31 30 64 5c 72 22 |%4s %10d| %10d\r"|
|00002de0| 20 5b 6c 69 6e 64 65 78 | 20 24 70 20 30 5d 20 5b | [lindex| $p 0] [|
|00002df0| 6c 69 6e 64 65 78 20 24 | 70 20 31 5d 20 5b 6c 69 |lindex $|p 1] [li|
|00002e00| 6e 64 65 78 20 24 70 20 | 32 5d 20 5b 6c 69 6e 64 |ndex $p |2] [lind|
|00002e10| 65 78 20 24 70 20 33 5d | 5d 0d 09 7d 0d 09 72 65 |ex $p 3]|]..}..re|
|00002e20| 74 75 72 6e 20 5b 73 74 | 72 69 6e 67 20 74 72 69 |turn [st|ring tri|
|00002e30| 6d 72 69 67 68 74 20 24 | 74 65 78 74 5d 0d 7d 0d |mright $|text].}.|
|00002e40| 0d 0d 23 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..#=====|========|
|00002e50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002e60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002e70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002e80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002e90| 3d 3d 3d 0d 23 20 52 65 | 63 75 72 73 69 76 65 6c |===.# Re|cursivel|
|00002ea0| 79 20 6d 61 6b 65 20 63 | 72 65 61 74 6f 72 20 6f |y make c|reator o|
|00002eb0| 66 20 61 6c 6c 20 74 65 | 78 74 20 66 69 6c 65 73 |f all te|xt files|
|00002ec0| 20 27 41 4c 46 41 27 2e | 20 4f 70 74 69 6f 6e 61 | 'ALFA'.| Optiona|
|00002ed0| 6c 6c 79 20 74 61 6b 65 | 73 20 61 20 73 74 61 72 |lly take|s a star|
|00002ee0| 74 69 6e 67 0d 23 20 64 | 69 72 20 61 72 67 75 6d |ting.# d|ir argum|
|00002ef0| 65 6e 74 2c 20 6f 74 68 | 65 72 77 69 73 65 20 73 |ent, oth|erwise s|
|00002f00| 74 61 72 74 73 20 69 6e | 20 63 75 72 72 65 6e 74 |tarts in| current|
|00002f10| 20 64 69 72 65 63 74 6f | 72 79 2e 20 41 75 74 6f | directo|ry. Auto|
|00002f20| 2d 44 6f 75 62 6c 65 64 | 20 61 72 65 20 6e 6f 20 |-Doubled| are no |
|00002f30| 0d 23 20 6c 6f 6e 67 65 | 72 20 72 65 63 6f 67 6e |.# longe|r recogn|
|00002f40| 69 7a 65 64 20 62 79 20 | 61 75 74 6f 2d 64 6f 75 |ized by |auto-dou|
|00002f50| 62 6c 65 72 21 20 57 68 | 79 3f 20 53 6f 6d 65 20 |bler! Wh|y? Some |
|00002f60| 73 6f 72 74 20 6f 66 20 | 63 6f 6e 66 6c 69 63 74 |sort of |conflict|
|00002f70| 20 77 2f 20 27 50 42 53 | 65 74 46 49 6e 66 6f 27 | w/ 'PBS|etFInfo'|
|00002f80| 2e 0d 70 72 6f 63 20 63 | 72 65 61 74 6f 72 20 7b |..proc c|reator {|
|00002f90| 7b 64 69 72 20 22 3a 22 | 7d 7d 20 20 7b 0d 09 69 |{dir ":"|}} {..i|
|00002fa0| 66 20 7b 21 5b 63 61 74 | 63 68 20 7b 67 6c 6f 62 |f {![cat|ch {glob|
|00002fb0| 20 2d 74 20 54 45 58 54 | 20 24 64 69 72 2a 7d 20 | -t TEXT| $dir*} |
|00002fc0| 66 69 6c 65 73 5d 7d 20 | 7b 0d 09 09 66 6f 72 65 |files]} |{...fore|
|00002fd0| 61 63 68 20 66 20 24 66 | 69 6c 65 73 20 7b 0d 09 |ach f $f|iles {..|
|00002fe0| 09 09 6d 65 73 73 61 67 | 65 20 24 66 0d 09 09 09 |..messag|e $f....|
|00002ff0| 73 65 74 46 69 6c 65 49 | 6e 66 6f 20 24 66 20 63 |setFileI|nfo $f c|
|00003000| 72 65 61 74 6f 72 20 41 | 4c 46 41 0d 09 09 7d 0d |reator A|LFA...}.|
|00003010| 09 7d 0d 0d 09 69 66 20 | 7b 21 5b 63 61 74 63 68 |.}...if |{![catch|
|00003020| 20 7b 67 6c 6f 62 20 24 | 64 69 72 2a 7d 20 64 69 | {glob $|dir*} di|
|00003030| 72 73 5d 7d 20 7b 0d 09 | 09 66 6f 72 65 61 63 68 |rs]} {..|.foreach|
|00003040| 20 64 20 24 64 69 72 73 | 20 7b 0d 09 09 09 69 66 | d $dirs| {....if|
|00003050| 20 7b 5b 66 69 6c 65 20 | 69 73 64 69 72 20 24 64 | {[file |isdir $d|
|00003060| 5d 7d 20 7b 63 72 65 61 | 74 6f 72 20 24 64 3a 7d |]} {crea|tor $d:}|
|00003070| 0d 09 09 7d 0d 09 7d 0d | 7d 0d 0d 0d 0d 23 3d 3d |...}..}.|}....#==|
|00003080| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000030a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000030b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000030c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 0d 70 |========|=====..p|
|000030d0| 72 6f 63 20 53 68 65 6c | 44 62 6c 43 6c 69 63 6b |roc Shel|DblClick|
|000030e0| 20 7b 61 72 67 73 7d 20 | 7b 20 65 76 61 6c 20 54 | {args} |{ eval T|
|000030f0| 63 6c 44 62 6c 43 6c 69 | 63 6b 20 24 61 72 67 73 |clDblCli|ck $args|
|00003100| 20 7d 0d 0d 23 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d | }..#===|========|
|00003110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003120| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003130| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003140| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003150| 3d 3d 3d 3d 0d 0d 70 72 | 6f 63 20 74 6f 6d 61 63 |====..pr|oc tomac|
|00003160| 20 61 72 67 73 20 7b 0d | 09 73 65 74 20 66 69 6c | args {.|.set fil|
|00003170| 65 73 20 7b 7d 0d 09 66 | 6f 72 65 61 63 68 20 61 |es {}..f|oreach a|
|00003180| 72 67 20 24 61 72 67 73 | 20 7b 0d 09 09 61 70 70 |rg $args| {...app|
|00003190| 65 6e 64 20 66 69 6c 65 | 73 20 22 20 22 20 5b 67 |end file|s " " [g|
|000031a0| 6c 6f 62 20 24 61 72 67 | 5d 0d 09 7d 0d 09 73 65 |lob $arg|]..}..se|
|000031b0| 74 20 64 69 72 20 5b 70 | 77 64 5d 0d 09 0d 09 66 |t dir [p|wd]....f|
|000031c0| 6f 72 65 61 63 68 20 66 | 20 24 66 69 6c 65 73 20 |oreach f| $files |
|000031d0| 7b 0d 09 09 6d 65 73 73 | 61 67 65 20 22 24 66 2e |{...mess|age "$f.|
|000031e0| 2e 2e 22 0d 09 09 73 65 | 74 20 66 64 20 5b 6f 70 |.."...se|t fd [op|
|000031f0| 65 6e 20 24 64 69 72 24 | 66 20 22 72 22 5d 0d 09 |en $dir$|f "r"]..|
|00003200| 09 73 65 74 20 74 65 78 | 74 20 5b 72 65 61 64 20 |.set tex|t [read |
|00003210| 24 66 64 5d 0d 09 09 63 | 6c 6f 73 65 20 24 66 64 |$fd]...c|lose $fd|
|00003220| 0d 09 09 72 65 67 73 75 | 62 20 22 5c 6e 22 20 24 |...regsu|b "\n" $|
|00003230| 74 65 78 74 20 22 5c 72 | 22 20 74 65 78 74 0d 09 |text "\r|" text..|
|00003240| 09 0d 09 09 73 65 74 20 | 66 64 20 5b 6f 70 65 6e |....set |fd [open|
|00003250| 20 22 24 64 69 72 24 66 | 22 20 22 77 22 5d 0d 09 | "$dir$f|" "w"]..|
|00003260| 09 70 75 74 73 20 2d 6e | 6f 6e 65 77 6c 69 6e 65 |.puts -n|onewline|
|00003270| 20 24 66 64 20 24 74 65 | 78 74 0d 09 09 63 6c 6f | $fd $te|xt...clo|
|00003280| 73 65 20 24 66 64 0d 09 | 7d 0d 09 6d 65 73 73 61 |se $fd..|}..messa|
|00003290| 67 65 20 22 22 0d 7d 0d | 0d 0d 23 3d 3d 3d 3d 3d |ge "".}.|..#=====|
|000032a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000032b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000032c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000032d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000032e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 0d 70 72 6f 63 |========|==..proc|
|000032f0| 20 75 6e 69 78 54 6f 4d | 61 63 20 7b 66 6e 61 6d | unixToM|ac {fnam|
|00003300| 65 7d 20 7b 0d 09 73 65 | 74 20 66 64 20 5b 6f 70 |e} {..se|t fd [op|
|00003310| 65 6e 20 24 66 6e 61 6d | 65 5d 0d 09 73 65 74 20 |en $fnam|e]..set |
|00003320| 74 65 78 74 20 5b 72 65 | 61 64 20 24 66 64 5d 0d |text [re|ad $fd].|
|00003330| 09 63 6c 6f 73 65 20 24 | 66 64 0d 09 73 65 74 20 |.close $|fd..set |
|00003340| 66 64 20 5b 6f 70 65 6e | 20 24 66 6e 61 6d 65 20 |fd [open| $fname |
|00003350| 22 77 22 5d 0d 09 70 75 | 74 73 20 2d 6e 6f 6e 65 |"w"]..pu|ts -none|
|00003360| 77 6c 69 6e 65 20 24 66 | 64 20 24 74 65 78 74 0d |wline $f|d $text.|
|00003370| 09 63 6c 6f 73 65 20 24 | 66 64 0d 7d 0d 0d 70 72 |.close $|fd.}..pr|
|00003380| 6f 63 20 73 65 74 43 72 | 65 61 74 6f 72 20 61 72 |oc setCr|eator ar|
|00003390| 67 73 20 7b 0d 09 73 65 | 74 20 66 69 6c 65 73 20 |gs {..se|t files |
|000033a0| 7b 7d 0d 09 73 65 74 20 | 63 72 65 61 74 6f 72 20 |{}..set |creator |
|000033b0| 5b 63 61 72 20 24 61 72 | 67 73 5d 0d 09 66 6f 72 |[car $ar|gs]..for|
|000033c0| 65 61 63 68 20 61 72 67 | 20 5b 63 64 72 20 24 61 |each arg| [cdr $a|
|000033d0| 72 67 73 5d 20 7b 0d 09 | 09 61 70 70 65 6e 64 20 |rgs] {..|.append |
|000033e0| 66 69 6c 65 73 20 22 20 | 22 20 5b 67 6c 6f 62 20 |files " |" [glob |
|000033f0| 24 61 72 67 5d 0d 09 7d | 0d 09 0d 09 66 6f 72 65 |$arg]..}|....fore|
|00003400| 61 63 68 20 66 20 24 66 | 69 6c 65 73 20 7b 0d 09 |ach f $f|iles {..|
|00003410| 09 73 65 74 46 69 6c 65 | 49 6e 66 6f 20 24 66 20 |.setFile|Info $f |
|00003420| 63 72 65 61 74 6f 72 20 | 24 63 72 65 61 74 6f 72 |creator |$creator|
|00003430| 0d 09 7d 0d 7d 0d 0d 70 | 72 6f 63 20 73 65 74 54 |..}.}..p|roc setT|
|00003440| 79 70 65 20 61 72 67 73 | 20 7b 0d 09 73 65 74 20 |ype args| {..set |
|00003450| 66 69 6c 65 73 20 7b 7d | 0d 09 73 65 74 20 74 79 |files {}|..set ty|
|00003460| 70 65 20 5b 63 61 72 20 | 24 61 72 67 73 5d 0d 09 |pe [car |$args]..|
|00003470| 66 6f 72 65 61 63 68 20 | 61 72 67 20 5b 63 64 72 |foreach |arg [cdr|
|00003480| 20 24 61 72 67 73 5d 20 | 7b 0d 09 09 61 70 70 65 | $args] |{...appe|
|00003490| 6e 64 20 66 69 6c 65 73 | 20 22 20 22 20 5b 67 6c |nd files| " " [gl|
|000034a0| 6f 62 20 24 61 72 67 5d | 0d 09 7d 0d 09 0d 09 66 |ob $arg]|..}....f|
|000034b0| 6f 72 65 61 63 68 20 66 | 20 24 66 69 6c 65 73 20 |oreach f| $files |
|000034c0| 7b 0d 09 09 73 65 74 46 | 69 6c 65 49 6e 66 6f 20 |{...setF|ileInfo |
|000034d0| 24 66 20 74 79 70 65 20 | 24 74 79 70 65 0d 09 7d |$f type |$type..}|
|000034e0| 0d 7d 0d 23 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.}.#====|========|
|000034f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003500| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003510| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003520| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003530| 3d 3d 3d 0d 00 00 00 00 | 00 00 00 00 00 00 00 00 |===.....|........|
|00003540| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003550| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003560| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003570| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003580| 00 00 01 00 00 00 01 4c | 00 00 00 4c 00 00 00 32 |.......L|...L...2|
|00003590| 00 01 01 02 00 01 17 02 | 00 01 1f 02 00 01 29 02 |........|......).|
|000035a0| 00 01 36 02 00 01 3c 02 | 00 01 44 02 00 01 52 02 |..6...<.|..D...R.|
|000035b0| 0d 73 68 65 6c 6c 4d 6f | 64 65 2e 74 63 6c 02 00 |.shellMo|de.tcl..|
|000035c0| 00 00 54 45 58 54 41 4c | 46 41 01 00 00 00 00 00 |..TEXTAL|FA......|
|000035d0| 00 00 54 45 58 54 41 4c | 46 41 01 00 00 00 00 00 |..TEXTAL|FA......|
|000035e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000035f0| 00 00 ae 11 cb 86 00 00 | 34 b4 00 00 01 7e 74 65 |........|4....~te|
|00003600| 49 6e 74 65 72 66 61 63 | 65 4c 69 62 00 53 6f 75 |Interfac|eLib.Sou|
|00003610| 6e 64 43 6f 6d 70 6f 6e | 65 6e 74 53 65 74 4f 75 |ndCompon|entSetOu|
|00003620| 74 70 75 74 00 53 6f 75 | 6e 64 43 6f 6d 70 6f 6e |tput.Sou|ndCompon|
|00003630| 65 6e 74 47 65 74 49 6e | 66 6f 00 53 6f 75 6e 64 |entGetIn|fo.Sound|
|00003640| 43 6f 6d 70 6f 6e 65 6e | 74 47 65 74 53 6f 75 72 |Componen|tGetSour|
|00003650| 63 65 44 61 74 61 00 55 | 6e 73 69 67 6e 65 64 46 |ceData.U|nsignedF|
|00003660| 69 78 65 64 4d 75 6c 44 | 69 76 00 53 6f 75 6e 64 |ixedMulD|iv.Sound|
|00003670| 43 6f 6d 70 6f 6e 65 6e | 74 50 6c 61 79 53 6f 75 |Componen|tPlaySou|
|00003680| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 b6 2a 90 |...H..Mo|naco..*.|
|00003690| 00 00 19 58 01 ae 73 7c | 01 d5 7a b0 24 00 04 22 |...X..s||..z.$.."|
|000036a0| 02 0f ea 80 00 01 00 04 | 00 04 00 28 00 02 02 5b |........|...(...[|
|000036b0| 02 00 00 28 00 02 02 5b | 02 00 ae 38 f1 0c 00 00 |...(...[|...8....|
|000036c0| 00 00 00 00 00 00 00 00 | 00 00 01 00 00 00 01 00 |........|........|
|000036d0| 00 00 01 4c 00 00 00 4c | 00 00 00 32 01 ac da c8 |...L...L|...2....|
|000036e0| 19 58 00 00 00 1c 00 32 | 00 00 4d 50 53 52 00 00 |.X.....2|..MPSR..|
|000036f0| 00 0a 03 ed ff ff 00 00 | 00 00 01 b6 2d e8 00 00 |........|....-...|
+--------+-------------------------+-------------------------+--------+--------+